Подтвердить что ты не робот

Источник сообщения jQuery $.ajax()

В случае сбоя код выглядит примерно так:

error: function(msg)

откуда находится msg?

EDIT:

Я использую эту функцию ($ ajax) для вызова WEB-СЕРВИСА. Поэтому, если бы кто-то, кто проголосовал за это, мог бы объяснить мне, откуда приходит msg, это было бы здорово! Установить его в веб-службе? Если да, то как? Не копируйте и не вставляйте определения.

4b9b3361

Ответ 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.