Ошибка «Доступ запрещен» в JavaScript - нет фреймов - PullRequest
1 голос
/ 10 ноября 2010

Мы видим неустойчивую ошибку JavaScript «Доступ запрещен» в клиентском приложении в IE8.Ошибка иногда возникает для некоторых пользователей и никогда для других пользователей.

Я могу надежно воспроизвести ошибку в своем браузере, перепрыгнув через несколько обручей:

  • Перейти на соответствующую страницу (обратите внимание на зону Интернета, даже если веб-серверэто тестовый сервер, работающий в нашей подсети)
  • Открыть свойства Internet Security (отображается сообщение «некоторые настройки управляются системным администратором»)
  • Открыть локальную интрасеть
  • НажмитеСайты
  • Нажмите OK
  • Нажмите OK
  • Обратите внимание, что зона изменилась на Локальная интрасеть (даже если я не внес изменения)
  • Нажмитераскрывающийся список на странице
  • Ошибка JavaScript «тип является нулевым или не является объектом»

При отладке этой ошибки она отображается в Microsoft.Ajax.js в «Sys.UI»..DomEvent »и переход по стеку вызовов показывает, что корневая ошибка возникает в« Sys.UI.DomEvent.addHandler », когда она вызывает« Sys.UI.DomElement._getWindow (a) .event »(a имеет тип DispHTMLWindow2) который бросаетисключение:

name: TypeError
description: “Access is denied.”
message: “Access is denied.”
number: -2147024891

Другие пользователи видят ошибку, не заходя в Internet Security Properties.

Все исследования, которые я проводил в отношении точек доступа «Отказано в доступе»к проблеме с использованием фреймов из разных источников, поэтому я удалил все фреймы с рассматриваемой страницы, но все еще вижу ошибку.

Что может вызвать ошибку JavaScript «Доступ запрещен» встраница без фреймов?

1 Ответ

1 голос
/ 23 ноября 2010

Оказывается, это происходит потому, что что-то иногда вызывает переключение зоны безопасности Интернета, когда пользователи находятся на определенной странице, которая широко использует JavaScript. Когда страница в IE меняет зону безопасности после загрузки, она не может выполнить JavaScript, который обращается к родительскому окну элементов управления на странице.

Все еще не уверен, что вызывает изменение зон безопасности на странице, но это происходит только тогда, когда мы ссылаемся на сайт по IP, а не по имени хоста (которое всегда отображается как зона локальной интрасети).

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