#ajax #jquery
#ajax #jquery
Вопрос:
Я изучал AJAX большую часть 2 часов, пытаясь разобраться, как заставить это работать, кажется, что он вызывает функцию, как будто я ввожу предупреждение, все работает нормально.
Я попытался использовать другой метод, и, похоже, он вызывал функцию самостоятельно, и она загружала то, что отображает страница .php.
Что я делаю не так, чтобы это вообще не работало?
<script type="text/javascript">
$('a.fire').click(call_ajax);
function call_ajax() {
$.ajax({
type: "GET",
url: "http://127.0.0.1/onlineshop/admin/scripts/test.php",
dataType: "html",
success: function(html){
$("#holder").append(html);
}
});
}
</script>
Редактировать: я тоже только что попробовал
$('a.fire').click(function() {
$.ajax({
type: "GET",
url: "http://127.0.0.1/onlineshop/admin/scripts/test.php",
dataType: "html",
success: function(html){
$("#holder").append(html);
}
});
});
Что также не работает.
РЕДАКТИРОВАТЬ: теперь у меня есть код, который получает нужный мне php-файл, но по какой-то причине делает это самостоятельно
<script type="text/javascript">
function call_ajax() {
$.ajax({
type: "GET",
url: "http://127.0.0.1/onlineshop/admin/scripts/test.php",
dataType: "html",
success: function(html){
$("#holder").append(html);
}
});
}
<script type="text/javascript">
$(function() {
$(document).ready(function() {
$('a.fire').click(call_ajax());
});
});
Проблема с этим кодом заключается в том, что он запускается сам по себе
РЕДАКТИРОВАТЬ: теперь у меня есть новый код, который пытается запустить в соответствии с консолью Firebug, но я получаю предупреждение ERROR: error, поэтому я понятия не имею, что происходит, чтобы он потерпел неудачу, я также перепробовал много разных URL-адресов без рабочего решения
$('a.fire').click(function () {
$.ajax({
type: "GET",
url: "/onlineshop/admin/scripts/test.php",
dataType: "html",
success: function(html){
$("#holder").append(html);
},
error:function(xhr, text, error){
alert("Error: " text);
}
});
});
РЕШЕНО: теперь у меня все заработало! По какой-то причине у моего якоря был href «», что привело бы к перезагрузке страницы и удалению моего GET со страницы
Комментарии:
1. В чем вопрос / проблема?
2. я в замешательстве, ваш запрос ajax запускается при
call_ajax
вызове?3. Добавьте обратный вызов с ошибкой и отобразите все ошибки.
4. Извините, если я не понял, проблема в том, что на самом деле это не работает. Запрос ajax запускался ранее, когда этого не должно было быть, но теперь в этой форме он не будет запускаться при нажатии на мой якорь.
5. вызывается ли функция?
Ответ №1:
ajax будет работать только в том случае, если это тот же домен. Это означает, что если вы выполните jQuery из домена x в домен y, он не будет работать. Это сделано из соображений безопасности, чтобы предотвратить загрузку веб-сайтов с другого веб-сайта. Работает ли ваш вызов jQuery-ajax, если вы удалите 127.0.0.1
его из своего URL?
Кроме того, я думаю, вам следует добавить функцию щелчка внутри вашей $(document).ready();
функции, например:
$(document).ready(function(){
$('a.fire').click(function() {
$.ajax({
type: "GET",
url: "onlineshop/admin/scripts/test.php",
dataType: "html",
success: function(html){
$("#holder").append(html);
}
});
});
});
в целях тестирования вы также можете использовать complete
функцию внутри вашего ajax и оповещать свои данные. firebug также может быть полезен для поиска вашей проблемы 🙂
Комментарии:
1. Firebug в Google Chrome, похоже, показывает, что он пытается получить страницу в соответствии с консолью, но он просто обновляет всю страницу по щелчку
2. чтобы предотвратить обновление страницы (это потому, что это a), вам лучше использовать span и придать ему соответствующий макет или сделать функцию щелчка
return false;
🙂 предоставление ahref="#"
тоже будет работать 🙂3. Не знаю, почему я не использовал href=»#», я думаю, это потому, что в прошлый раз он уничтожил мои текущие GET, понятия не имею, почему