Исключение DOM 11

#javascript #ajax

#javascript #ajax

Вопрос:

Я запускаю этот код через консоль на http://TheScoutApp.com в строке 3 я получаю исключение DOM 11!!!

 var xhr2 = new XMLHttpRequest();
xhr2.onreadystatechange = function() {
  console.error(xhr2.statusText); //DOM exception 11!!!
  if (xhr2.readyState === 4 amp;amp; xhr2.status === 200) {
    console.error('xhr2');
  }
}
xhr2.open("GET","http://thescoutapp.com/extension/update.xml",true);
xhr2.send();
  

Комментарии:

1. Вы исследовали, что означает ошибка? В SO есть несколько других вопросов об этой конкретной ошибке.

2. Я сделал … так что, как я понимаю, я хочу использовать if вместо if (1 amp;amp; 2)

3. Поставить open перед onreadystatechange

Ответ №1:

К свойству xhr.statusText можно получить доступ только после завершения запроса. Но обратный вызов onreadystatechange вызывается раньше — более ранние вызовы имеют xhr.readyState==1 (= установлено соединение с сервером).

Вы должны поместить оценку xhr.statusText внутри условия:

 if(xhr.readyState == 4) {
  console.error(xhr.statusText);
}