Я искал аналогичную проблему некоторое время, но ни одно из решений не работало для меня (и я не мог найти точно такую же проблему).Ответ AJAX возвращает текущую страницу
Прежде всего, сайт, над которым я работаю, работает на Zend Framework. Я подозреваю, что это имеет какое-то отношение к проблеме.
Я хочу сделать довольно простые функции AJAX, но по какой-то причине мой ответ всегда равен html текущей страницы. Мне не нужна какая-либо функциональность Zend, функции, которые мне нужно реализовать, могут (и я предпочел бы их) работать отдельно от фреймворка.
Для целей тестирования я сделал все как можно проще, и все же я не могу найти ошибку. У меня есть страница «test.php», которая имеет только ссылку, которая запускает вызов ajax. Вот как выглядит этот призыв:
$('.quiz-link').click(function(e){
e.preventDefault();
$.ajax({
URL: "/quiz_api.php",
type: "POST",
cache: false,
data: {
'test': 'test'
},
success: function(resp){
console.log(resp);
},
error: function(resp){
console.log("Error: " + reps);
}
});
});
И это quiz_api.php просто:
<?php
echo "This is a test";
?>
Когда я щелкаю по ссылке я получаю весь HTML текущей страницы. «Это тест» не может быть найден там. Я также получаю сообщение об ошибке: «Синхронный XMLHttpRequest в основном потоке устарел из-за его пагубных последствий для пользователя конечного пользователя. Для получения дополнительной справки отметьте http://xhr.spec.whatwg.org/».
Я считаю, что это связано с файлами JS, которые включены в этот ответ HTML, но я также попытался установить «async: true», и это не помогло.
Я хотел бы избежать использования функций Zend Framework для этой задачи, потому что я не очень хорошо знаком с этим, и даже создание простого контроллера звучит довольно болезненно. Вместо этого я хочу узнать, что вызывает такое поведение, и посмотреть, можно ли его изменить.
PS: Я также попытался переместить quiz_api.php в другой домен, но ничего не изменил.
Да, это работает! Спасибо! Так что я не могу использовать jQuery $ .ajax (...) с Zend Framework? Я не возражаю так много, пока этот другой метод работает, но я нахожу метод jQuery более красивым, что означает более легкое чтение. –
На самом деле, $ .ajax (...) также работает, мне нужно было только добавить заголовки: {«Content-type»: «application/x-www-form-urlencoded»}, 'в мои настройки ajax и теперь оно работает. Все еще нужно выяснить несколько вещей, но они, скорее всего, не связаны с этой темой. –