2013-09-06 12 views
-2

Я использовал один и тот же код ajax в файле, и он работает. Но тот же код не работает в других файлах.Почему этот аякс терпит неудачу?

Это мой код

$.ajax({ 
    type: "GET", 
    url: "get_child.php?pc_id="+pc_id.toString(), 

}).done(function(option) { 
    alert("done"); 
}).fail(function(option) { 
    alert("fail"); 
}); 

пожалуйста, скажите мне, что все могло быть неправильно

работы здесь: вид-источник: http://schoolspam.com/addTeacher.php здесь не работает: вид-источник: http://schoolspam.com/school/oppa_alla_36/

+3

Не видя больше кода, нельзя сказать, но что такое 'pc_id'? Поставьте предупреждение (console.log лучше) перед вызовом ajax, чтобы проверить значение. Кроме того, последняя запятая (после toString) вызовет проблему в IE - избавиться от этого, чтобы быть в безопасности. – Archer

+0

может быть, потому что путь к 'get_child.php' уже не тот же? –

+1

добавить обработчик детали ошибки '$ .ajax ({ типа: "GET", URL: "get_child.php pc_id =?" + Pc_id.toString(), ошибка: функция (XHR, статус, ошибка) { alert ('error:' + status + ':' + error + ':' + xhr.responseText) } }). done (функция (опция) { предупреждение ("сделано"); }). функция (опция) { alert ("fail"); }); ' –

ответ

2

удалить последнюю запятую? на .ToString()

+4

Это немного жестко, чтобы уменьшить это , Он * будет * приводить к ошибке в IE, поэтому это может быть его проблемой. – Archer

+1

Согласен. Когда «не работает» - это все, что мы знаем, указывая на потенциальную причину неработоспособности, нельзя считать нецелесообразным. –

0

В исходном коде страницы вы имеете linked to вы следующее:

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
<script src=Óhttps://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.jsÓ type=Ótext/javascriptÓ></script> 

Здесь вы включили JQuery дважды, и во втором включении у вас есть какие-то странные выглядящие символы. Просто избавитесь от второй линии.

Также неправильный вызов AJAX. У вас есть следующие:

$.ajax({ 
    type: "GET", 
    url: "get_child.php?pc_id="+pc_id.toString(), 
    done: function(option) { 
     alert("done"); 
    }, 
    fail: function(option) { 
     alert("fail"); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     alert(textStatus); 
     alert(errorThrown); 
    } 
}); 

, который должен быть:

$.ajax({ 
    type: "GET", 
    url: "get_child.php?pc_id="+pc_id.toString() 
}).done(function(option) { 
    alert("done"); 
}).fail(function(option) { 
    alert("fail"); 
}); 
0

Проблема может быть в использовании относительного пути для url, которые являются по отношению к текущему адресу.

Таким образом, каждая из страниц, которые вы перечислили будет ожидать, чтобы найти get_child.php в другом месте:

http://schoolspam.com/addTeacher.php -> 
http://schoolspam.com/get_child.php 
http://schoolspam.com/school/oppa_alla_36/ -> 
http://schoolspam.com/school/oppa_alla_36/get_child.php 

Вы можете попробовать вместо указания url от корня. Так как скрипт, похоже, находится в корневом каталоге, ему просто нужно добавить /.

url: "/get_child.php?pc_id="+pc_id.toString() 
+0

Wat ?? Если скрипт уже находится в корневой папке, то префикс url с '/' не будет иметь никакого эффекта. – Archer

+0

@Archer URL-адреса на стороне клиента не запускаются автоматически с правами root, если у них нет ведущего '/'. По умолчанию начинается в каталоге текущей страницы - обязательно, '/' для одной страницы, но '/ school/oppa_alla_36 /' для другой. Это то же самое для '', '