Вызов функции AJAX после readystatechange

#javascript #ajax #google-chrome #internet-explorer-8

#javascript #ajax #google-chrome #internet-explorer-8

Вопрос:

Я отправляю вызов Ajax на сервер и пытаюсь вызвать другую функцию, когда ответ готов (readystatechanged). Серверный код на данный момент не существует. «Другой» вызов функции завершается с ошибкой в Chrome и Firefox. Неожиданно в Internet Explorer 8 не возникает проблем с вызовом функции.

Я могу создать объект XMLHttpRequest в Chrome и Firefox (и ActiveXObject в IE8). Я также могу использовать open и отправлять и получать readystatechanges и коды состояния. Чего chrome и Firefox не могут сделать, так это вызвать функции «drawTable()» и «drawChart()»

 if( xhr.readystate == 4 amp;amp; xhr.status == 200 )
{
  drawTable();
  drawChart();
}
  

Я могу отследить выполнение с помощью Firebug и Google Chrome Script tool до вышеупомянутого if-оператора. Переменные-члены readystate и status имеют правильные значения. В отличие от IE8, Chrome и Firefox не будут просто вызывать функции.

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

1. 1. Пожалуйста, предоставьте SSCCE . 2. По какой-либо конкретной причине вы не используете один из множества доступных кроссбраузерных фреймворков? 3. Вероятно, это проблема с условиями гонки.

2. не могли бы вы вывести console.out xhr перед инструкцией if и показать нам, что вы видите?

3. Спасибо за комментарий, Мэтт. Это мой первый вопрос в SO, добавлю в закладки вашу ссылку SSCCE 🙂 Вы имеете в виду кроссбраузерный фреймворк?

4. Зачем ему использовать jQuery только для этого?

5. Формирование вопроса к проблеме кажется разумным. Этот вопрос указал на ответ для меня: опечатка ( xhr.readystate -> xhr.readyState )

Ответ №1:

У вас опечатка. На самом деле свойство является readyState (обратите внимание на верхний регистр S ).

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

1. Да. Исправление опечатки устранило проблему. Спасибо