2015-12-09 3 views
2

У меня есть скрипт, который я вызываю через AJAX вызова с JQuery:PHP неожиданный редирект

$.ajax({ 
    contentType: "application/x-www-form-urlencoded; charset=UTF-8", 
    type: "POST", 
    url: "getFares.php", 
    data: someObjectHere, 
    success: function(data) { 
    handleSuccess(data); 
    }, 
    dataType: "json" 
}); 

Большую часть времени этот запрос работает нормально, а сервер посылает значения, которые я бы ожидать.

Иногда, однако, сервер просто отвечает отрицательным ответом 303 SEE OTHER. Нигде в моем php-скрипте нет ничего, что могло бы произвести эту перенаправление.

К сожалению, я не смог найти какой-либо шаблон, когда происходит перенаправление. Похоже, что это происходит только при загрузке страницы, затем подождите немного, а затем вызовите запрос ajax, но это может быть совпадением.

Я знаю, что это не очень полезное описание, но, к сожалению, я застрял здесь, поэтому я надеюсь, что кто-то удачлив знает, как его исправить.

Вот несколько скриншотов из Девых инструментов, которые должны проиллюстрировать эту проблему более четко:

На этом изображении вы можете увидеть, что я сделал пару запроса к скрипту (getFares.php) и Я выделил тот, который сработал. Вы можете видеть, что код состояния - 200, и все в порядке. Working request

Здесь я выделил неудачный запрос. Ответ 303 Смотреть другие. Как вы можете видеть, ни одно из других значений запроса не изменилось Failed Request

Единственная разница в запросах, которые я смог найти, рассматривается здесь. Для запросов, которые возвращают правильный результат (статус 200), тип «xhr» и для запросов, которые приводят к перенаправлению, имеют тип «x-www-form-urlencoded; charset = UTF-8». Я не знаю, почему это происходит или откуда оно происходит. Request overview

Я предполагаю, что проблема может быть связана с неправильными настройками сервера/php, но трудно найти такую ​​ошибку.

+0

Ваша функция ajax, кажется, выполняется, когда и когда вы загружаете страницу. Почему бы вам не включить его в какую-либо функцию, если вам это нужно, например, onclick или onchnage и т. Д. –

+0

Фактически это вызвано кнопкой, которую я нажимаю – user3346601

ответ

0

Это не проблема ajax, но сам сервер отправляет ответ по какой-либо причине.

getFares.php страница должна быть проверена на некоторых почтовых параметров, если отрабатывает, посылает ответ 200 в противном случае какой-либо другой ответ, как 303.

Вы можете проверить getFares.php код, чтобы получить больше идеи.

+0

. Я тоже так думал, но, как я сказал в вопросе, нигде в php код - это перенаправление – user3346601