2008-11-13 8 views
2

Недавно приложение, которое я написал, не начинало работать в Internet Explorer. Не было изменений в базовом (рубиновом рельсе) коде.Что делает сообщение IE 6 & 7 «Операция отменена»?

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

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

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

Любые идеи?

ответ

5

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

BUG: Error message when you visit a Web page or interact with a Web application in Internet Explorer: "Operation aborted"

ПриЗнаКи

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

ПРИЧИНА

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

РЕШЕНИЕ

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

+0

Мысль, которую я должен добавить: эта проблема возникла в прошлом с помощью рекламных услуг и других Javascript за пределами сайта (Google Maps, SiteMeter и т. Д.). Во всех случаях вам нужно беспокоиться не только о своей собственной кодовой базе. – 2009-05-01 06:34:17

1

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

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

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

alt text http://i.msdn.microsoft.com/Bb250446.ie_introfiddler_fig04(en-us,VS.85).gif

+0

Я использовал что-то подобное, называемое Http Analyzer, которое я понял, что заголовок ответа верен, но контент не был. – 2008-11-13 18:38:43