Успех с кодом состояния AJAX <400? - PullRequest
5 голосов
/ 23 января 2012

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

Просматривая список кодов состояния для HTTP , я не думаю, что будет, но я хочу убедиться. Я не думаю, что получу коды уровня 1XX, поскольку они выглядят так, как будто большинство из них возвращаются до обработки полного запроса и readyState === 4 (мне все равно, что в IE 7 122). И я все еще хочу вернуть успех по кодам статуса 302 и 304. Так является ли status < 400 приемлемым способом поймать все это?

Ответы [ 2 ]

1 голос
/ 23 января 2012

Основываясь на проблемах @ sarnold , похоже, что XMLHttpRequest спецификации говорят следующее:

Если ответ является перенаправлением HTTP (код состояния 301, 302, 303 или 307), то он ДОЛЖЕН быть прозрачным (если он не нарушает безопасность или меры предосторожности бесконечного цикла). Любая другая ошибка (включая 401) ДОЛЖЕН заставить объект использовать эту страницу ошибки в качестве ответа.

Что, кажется, указывает на то, что ответы 2XX или 3XX действительны. Итак, вкратце, мои выводы указывают на то, что status < 400 является соответствующей проверкой статуса ответа.

1 голос
/ 23 января 2012

A 301 означает, что клиент отвечает за повторный HTTP-вызов с новым URL-адресом.Ваша библиотека или инструментарий уже справились с этим для вас?

...