Параметр ошибки JQuery в утилите $ .ajax

В документации указано, что функция error: option сделает доступными: экземпляр XHR, строку сообщения о состоянии (в данном случае всегда error) и необязательный объект исключения, возвращаемый из экземпляра XHR (Книга: JQuery in Action)

Используя следующее (в вызове $ .ajax), я смог определить, что у меня были ошибки "parsererror" и "timeout" (поскольку я добавил timeout: option)

error: function(request, error){}

Что еще вы оцениваете при выборе варианта ошибки? вы включаете необязательный объект исключения?

Обновлено: один из ответов указывает на все ошибки возврата ... было бы полезно узнать больше о том, что имеет значение (для отладки) в экземпляре XHR и объекте исключения

Это полный вызов $ .ajax:

$.ajax({
 type: "post",
 url: "http://myServer/cgi-bin/broker" ,
 dataType: "text",
 data: {
 '_service' : 'myService',
 '_program' : 'myProgram',
 'start' : start,
 'end' : end
 },
 beforeSend: function() {
  $("#loading").removeClass("hide");
 },
 timeout: 5000,
 error: function(request,error) {
  $("#loading").addClass("hide");
  if (error == "timeout") {
   $("#error").append("The request timed out, please resubmit");
  }
  else {
   $("#error").append("ERROR: " + error);
  }
  },
  success: function(request) {
   $("#loading").addClass("hide");
   var t = eval( "(" + request + ")" ) ;
  } // End success
}); // End ajax method

Спасибо за вклад

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
34
0
75 237
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Вы уверены, что ответ правильный? Ошибка синтаксического анализа означает, что что-то не так с данными, вычисляемыми в строке var t = eval( "(" + request + ")" ) ;

извините, мой вопрос не был ясным. Я справился со своими проблемами "parsererror" ... Мне было интересно, какая еще информация может быть определена с помощью опции error:

Jay Corbett 19.09.2008 00:05
Ответ принят как подходящий

Взглянув на исходный код jQuery, можно увидеть четыре возвращаемых статуса в дополнение к успех:

  • тайм-аут - когда вы указали превышен тайм-аут
  • ошибка - ошибка http, вроде 404
  • немодифицированный - по запросу ресурс не изменялся с момента последнего запрос
  • синтаксический анализатор - когда ответ xml / json Плохо

также, когда dataType: "json" и json сформирован неправильно

Jay Corbett 19.09.2008 00:15

Второй аргумент, который передается вашей функции обработки ошибок, будет либо строкой «timeout» «parserror», «error», либо «notmodified». Третий будет объектом исключения. Этот объект может быть полезен при отладке.

не могли бы вы обновить свой ответ, чтобы объяснить полезную информацию об отладке, которую можно получить из объекта исключения

Jay Corbett 19.09.2008 00:08

Это отступление, но я думаю, что в отправленном вами коде есть ошибка. Линия:

 if (error = "timeout") {

в нем должно быть больше знаков равенства:

 if (error == "timeout") {

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

Jay Corbett 31.12.2009 18:18

Я считаю запрос более полезным, чем ошибка.

error:function(xhr,err){
    alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
    alert("responseText: "+xhr.responseText);
}

xhr - это XmlHttpRequest.
Значения readyState: 1: загрузка, 2: загружена, 3: интерактивно, 4: завершено.
. положение дел - это номер статуса HTTP, т.е. 404: не найден, 500: ошибка сервера, 200: хорошо.
responseText - это ответ сервера - это может быть текст или JSON от веб-службы или HTML с веб-сервера.

Другие вопросы по теме