Я отправляю сообщение об ошибке на мой jQuery. Тем не менее, я не могу получить текст ответа (в приведенном ниже примере это будет Ушел на пляж )
Единственное, что говорит jQuery - это «ошибка».
Смотрите этот пример для деталей:
PHP
<?
header('HTTP/1.1 500 Internal Server Error');
print "Gone to the beach"
?>
JQuery
$.ajax({
type: "post",
data: {id: 0},
cache: false,
url: "doIt.php",
dataType: "text",
error: function (request, error) {
console.log(arguments);
alert(" Can't do because: " + error);
},
success: function () {
alert(" Done ! ");
}
});
Теперь мой результат:
журнал:
[XMLHttpRequest readyState=4 status=500, "error", undefined]
предупреждение:
Не могу сделать, потому что: ошибка
Любые идеи?
php
javascript
jquery
ajax
error-handling
jantimon
источник
источник
header
ручка функция этого?$.ajax()
вызывает функцию ошибки, переданную ему.Ответы:
Пытаться:
источник
eval
ЗЛО ... stackoverflow.com/questions/646597/…eval
здесь не имеет особого смысла. Если вы хотите проанализировать ответ JSON, используйтеJSON.parse
. В случае с OP ответом даже не является JSON или JavaScript, поэтому выeval
просто вызовете SyntaxError.xhr
не определеноДля меня это просто работает:
источник
Посмотрите на
responseText
свойство параметра запроса.источник
Как в конечном счете предложено этим другим ответом и его комментариями на этой странице:
источник
Это то, что сработало для меня
источник
Это позволит вам увидеть весь ответ, а не только значение responseText
источник
Вы можете попробовать это тоже:
источник
Если вы хотите получить синтаксическую ошибку с номером строки, используйте эту
источник
Лучший простой подход:
источник
Я использовал это, и это сработало отлично.
источник
Если у вас нет сетевой ошибки и вы хотите обнаружить ошибку из бэкэнда, например, из-за недостаточных привилегий, отправьте в ответ на ваш запрос 200 и сообщение об ошибке. Затем в вашем обработчике успеха проверьте data.status == 'error'
источник
fail
метод вместоdone
метода. Все запросы возвращают объект, который содержит объект «status» с кодом и сообщением.