#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. Да. Исправление опечатки устранило проблему. Спасибо