KosBeg,
Ваш пример не совсем корректен, по моему. Если получен статус 200, это еще не значит, что весь ответ получен. К тому же, асинхронный запрос, как в Вашем примере, требует определить коллбек onreadystatechange |
Цитата:
status >= 200 && status < 400 |
Цитата:
Цитата:
|
Это похоже на узоры. Чтоб код красивее был, орнамент такой.
Нет никакого смысла проверять статус, ибо из всех статусов вы получите только разрешенные, и разрешенные вам ничего не дадут, ибо ваши скрипты все равно заточены на проверку условленной переменной в ответе. Ну хорошо, допустим if(status==500) сравните if(responseText.lenght<1) Теоретически в респонзе может что-то быть и нужно проверить 500, но где вы такое видели на практике? Статусы редиректов вообще до скрипта не доходят. |
Передавайте все в json'е, несмотря на химерические рекомендации не передавать хтмл в жисоне. Выглядит бредово, зато работает:
try{ var data=JSON.parse(this.responseText); } catch(e){ /* do somethin */ } если в ответе нет нормального формата жисона, значит либо он пустой, либо пришел с другого места, скажем с сообщения об ошибке, об отсутствии и тп. Внутри катча можно захотеть получить уже статус и типа типа принять то или иное решение. ЗЫ Еще раз. Если бы браузер без базаров пропускал все заголовки до скрипта - это была бы другая технология, настоящая и под нее можно было бы написать нормальные библиотеки. Но поскольку пропускается только часть - ради этой части не стоит и дрыгаться. Трай-кач на клиенте сделает все что требуется и без гемора со статусами. |
Цитата:
|
Цитата:
Цитата:
var xhr = new XMLHttpRequest(); xhr.open('GET', 'phones.json', true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState != 4) return; // эта штука не даст вывести часть ответа пока ответ полностью не загрузится =) alert( 'Пришел ответ: ' + xhr.responseText ); } |
Цитата:
|
Часовой пояс GMT +3, время: 23:01. |