Заголовки jQuery и http: какое свойство мне нужно для сообщения? - PullRequest
1 голос
/ 20 апреля 2011

Следующий скрипт php получает запрос ajax и выдает ошибку, если требуемая переменная не установлена:

<?php
if(!isset($_POST['id'])) {
    header($_SERVER["SERVER_PROTOCOL"]." 400 Bad Request: id not set.");
    exit;
}
//do stuff
?>

В моем javascript (jQuery) я установил обработчик ошибок ajax по умолчанию:

$(document).ready(function() {
    $.ajaxSetup({
        error: function(x, e){ 
            if (x.status == 0) { 
                alert(' Check Network.' + x.responseText); 
            } else{
                alert(x.status + ' ' + x.responseText); 
            } 
        }
    });
});

Я ожидаю получить окно с предупреждением «400 Bad Request: id not set».когда моя ошибка 400 происходит.В настоящее время я получаю предупреждение только с "400".Что мне нужно изменить, чтобы показать оставшуюся часть сообщения?

Ответы [ 2 ]

1 голос
/ 20 апреля 2011
<?php
if(!isset($_POST['id'])) {
    header($_SERVER["SERVER_PROTOCOL"]." 400");
    die("Bad Request: id not set.");
}
//do stuff
?>
1 голос
/ 20 апреля 2011

Ваше окно предупреждения отображается в этой части кода:

alert(x.status + ' ' + x.responseText);

В основном вы отображаете:

  • Код состояния
  • И тело ответа , если оно есть.


Но ваш код PHP выглядит так:

header($_SERVER["SERVER_PROTOCOL"]." 400 Bad Request: id not set.");
exit;

Он отправляет код состояния, ноничего не выводит - это означает тело ответа пусто .


Вы должны сделать эхо из вашего PHP-кода, чтобы иметь некоторое тело в вашем ответе:

header($_SERVER["SERVER_PROTOCOL"]." 400 Bad Request");
echo "id not set";
exit;


Свойство responseText на стороне Javascript содержит текст, который был отправлен на стандартный вывод со стороны PHP.

И отправка настандартный вывод - это где echo пишет; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...