Что может заставить XMLHttpRequest никогда не изменять состояние в Firefox? - PullRequest
5 голосов
/ 03 июня 2009

Я работаю над старым AJAX-кодом, написанным в темные мрачные дни до jQuery. Как ни странно, он работал хорошо в течение многих лет, вплоть до сегодняшнего дня, когда внезапно прекратил запуск обратного вызова. Вот основной код:

var xml = new XMLHttpRequest();  // only needs to support Firefox
xml.open("GET", myRequestURL, true);
xml.onreadystatechange = function() { alert ('test'); };
xml.send(null);

Проверяя консоль Firebug, запрос отправляется без проблем, и он получает правильный XML из URL-адреса запроса, но функция onreadystatechange вообще не работает. В системе нет ошибок JavaScript или чего-то еще странного.

Хотелось бы просто переписать все, используя jQuery, но сейчас у меня нет времени. Что может быть причиной этой проблемы ??


Дальнейшее обновление - я смог протестировать свой код в другом браузере (FFx 3.0), и он работал там, поэтому это должно быть проблема с моим браузером. Я использую Firefox 3.5b4 в Vista, и я попробовал его сейчас со всеми моими аддонами, отключенными без удачи. Это все еще очень меня беспокоит, потому что я вчера работал над этим сайтом (с той же настройкой браузера), и проблем не было вообще ...

На самом деле я просто заглянул в окно Аддонов и увидел, что Firebug все еще включен. Если я отключу Firebug, он работает отлично. Если я включу его, он сломан. Firebug версия 1.40.a31

Ответы [ 3 ]

4 голосов
/ 03 июня 2009

неправильный URL? Вы пытались поместить все это в попытку и предупредить об ошибках (если есть)

не проходит проверку авторизации? URL-адрес требует http-auth? (хотя в этом случае должны быть изменения состояния, я признаю)

редактирование:

У меня тут действительно смешная мысль. Вы используете Firefox 3.5 бета4? Я разработал расширение для Firefox для браузерной игры, и недавно обнаружил странную природу. С моим расширением или firebug, наблюдающим запросы ajax, сделанные со страницы, сценарий их создания никогда не получит обратного вызова. Запрос будет правильно соблюдаться и обрабатываться как firebug, так и моим расширением (я мог наблюдать за тем, что было отправлено и получено) ... но сама страница никогда не получит ответ от запроса - как будто он исчез в черной дыре.

Попробуйте отключить firebug (или хотя бы отключить прослушивание 'Net' для этого домена) и протестируйте его снова

3 голосов
/ 03 июня 2009

Известная ошибка Firefox, затрагивающая Firebug; см. http://code.google.com/p/fbug/issues/detail?id=1569&q=xhr&colspec=ID%20Type%20Status%20Owner%20Test%20Summary для деталей: -)

0 голосов
/ 03 июня 2009

Кажется маловероятным, что onreadystatechange перестанет работать. Возможно ли, что функция оповещения как-то отключена или переопределена? Можете ли вы заменить оповещение некоторым кодом, чтобы внести видимые изменения в страницу и таким образом проверить его функциональность? (Я знаю, это натянуто, но это кажется настолько странным, что onreadystatechange не сработает!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...