Источник сообщения jQuery $.ajax()
В случае сбоя код выглядит примерно так:
error: function(msg)
откуда находится msg
?
EDIT:
Я использую эту функцию ($ ajax) для вызова WEB-СЕРВИСА. Поэтому, если бы кто-то, кто проголосовал за это, мог бы объяснить мне, откуда приходит msg, это было бы здорово! Установить его в веб-службе? Если да, то как? Не копируйте и не вставляйте определения.
Ответы
Ответ 1
Из документации jquery:
error(XMLHttpRequest, textStatus, errorThrown) Function
Функция, вызываемая, если запрос терпит неудачу. Функция передается по трем аргументам:
- Объект XMLHttpRequest,
- строка, описывающая тип ошибки, которая произошла, и
- необязательный объект исключения, если он произошел.
Возможными значениями для второго аргумента (кроме нуля) являются "тайм-аут", "ошибка", "немодифицированный" и "parsererror". Это событие Ajax.
Когда вы укажете только один параметр, это будет xmlHttpRequestObject
. Вы можете получить хорошую информацию. К сожалению, большая часть документации там не установлена правильно.. Хорошим шаблоном по умолчанию является:
error:function (xhRequest, errorText, thrownError)
Некоторая хорошая информация, которую вы можете получить от xhRequest:
-
.status
: 404: "not found", 500: "ошибка сервера". Иногда это может быть большой помощью.
-
.responseText
- это информация с сервера, часто бесполезная в случае ошибки, но иногда может быть полезна.
Второе значение, строка, иногда полезно. Ах, я думаю, возможные значения указаны в документации.
Третий параметр, когда я его проверил, всегда был undefined. Я не думаю, что это когда-либо полезно.
Ответ 2
Я думаю, что третий параметр errorThrown в функции обратного вызова ошибки
error(XMLHttpRequest, textStatus, errorThrown)
- это точно отправить текстовое сообщение об ошибке с сервера.
Итак, если на сервере вы установили:
Response.Status = 403;
Response.StatusDescription = "Password is not correct";
на клиенте, который вы получаете:
textStatus => "error",
errorThrown => "Password is not correct"
Серверная часть для Asp.net MVC будет:
return new HttpStatusCodeResult(403, "Password is not correct");
Ответ 3
Это сообщение является возвратом от фактической функции на стороне сервера, которую вы запрашиваете при вызове ajax.
Таким образом, вы можете получить сообщение об ошибке или любую другую информацию о том, сделал ли код на стороне сервера то, что он должен был делать.
Скажите, верните ли строку "успех"
msg.val()
будет равен "успеху"
надеюсь, что поможет
Ответ 4
возвращаемая переменная ajax (в данном случае msg) - это результат, возвращаемый вызовом AJAX - в случае ошибки ajax это, вероятно, будет ошибкой сервера.
Ответ 5
Собственно, правильный способ:
error: function(req, status, error) {
}
Из jQuery API:
Функция, которая должна быть если запрос терпит неудачу. функции передаются три аргумента: Объект XMLHttpRequest, строка описывающий тип ошибки, которая произошло и необязательное исключение объект, если он произошел. Возможное значения для второго аргумента (кроме нуля) являются "тайм-аут", "ошибка", "notmodified" и "parsererror". Эта является событием Ajax.