Как правильно определить, что вызов AJAX успешен? - PullRequest
1 голос
/ 29 мая 2009

Как правильно определить, что вызов AJAX успешен?

Я вижу в prototype.js

    return !status || (status >= 200 && status < 300);

и в jQuery:

    // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
    return !xhr.status && location.protocol == "file:" ||
        ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;

какой из них правильный? Если мы не используем какую-либо библиотеку Javascript, а напишем AJAX на базовом Javascript, какую из них нам следует использовать?

Ответы [ 2 ]

5 голосов
/ 29 мая 2009

Прототип кажется более «правильным», поскольку он рассматривает только действительные коды успеха HTTP как успех. JQuery более устойчив, поскольку учитывает ошибки и другие вещи, которые часто являются кодами успеха.

1 голос
/ 29 мая 2009

HTTP-статусы делятся на следующие категории:

2XX: успех

3XX: перенаправление

4XX: ошибка клиента

5XX: ошибка сервера.

Таким образом, 200-300 - это хороший результат для вызова ajax.

для более подробной информации о кодах состояния, проверьте http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

ура

JRH.

...