Что заставляет IE 6 и 7 сообщать «Операция прервана»? - PullRequest
2 голосов
/ 13 ноября 2008

Недавно написанное мной приложение не работает в Internet Explorer. В основной код (ruby on rails) не было внесено никаких изменений.

В IE 6 или IE 7 я могу сделать один запрос (HTTP Post) к приложению, но когда я пытаюсь сделать второй запрос, я получаю сообщение «Операция прервана». Все отлично работает в Firefox. Заголовки HTTP-запросов и ответов в точности совпадают. Заголовок ответа для правильных и неправильных результатов имеет одинаковую длину содержимого (около 104 КБ). Правильный ответ имеет полное содержание, но неправильный ответ обрезает содержимое после 40k. (Так что около 65 тыс. Ответов просто пропало.)

Еще более хитрая вещь в том, что если я использую IP-адрес вместо имени домена для выполнения запроса, все работает отлично.

Это веб-сервер apache2.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 13 ноября 2008

Я нашел эту статью поддержки Microsoft:

BUG: сообщение об ошибке при посещении веб-страницы или взаимодействии с веб-приложением в Internet Explorer: «Операция прервана»

ПРИЗНАКИ

Когда вы посещаете веб-страницу или взаимодействуете с веб-приложением, вы получаете диалоговое окно Internet Explorer, которое содержит следующее сообщение об ошибке: Internet Explorer не может открыть интернет-сайт http://<Web site>.com. Операция прервана.

ПРИЧИНА

Эта проблема возникает из-за того, что HTML-элемент дочернего контейнера содержит код сценария, который пытается изменить элемент родительского контейнера дочернего контейнера. Код сценария пытается изменить родительский элемент контейнера, используя метод innerHTML или метод appendChild.

* 1022 Временное решение *

Чтобы обойти эту проблему, напишите блоки скриптов, которые изменяют только закрытые контейнеры или только непосредственный элемент контейнера скрипта. Для этого вы можете использовать заполнитель для закрытия целевого контейнера или переместить блок сценария в контейнер, который вы хотите изменить.

1 голос
/ 13 ноября 2008

Вы можете попытаться отладить проблему, используя Fiddler . Это бесплатный инструмент HTTP Proxy для Internet Explorer.

В нем перечислены все детали запроса и ответа. Возможно, вы видите фактическую причину такого поведения, проверяя весь HTTP-трафик.

Надеюсь, это поможет!

альтернативный текст http://i.msdn.microsoft.com/Bb250446.ie_introfiddler_fig04(en-us,VS.85).gif

...