четверг, мая 05, 2005

Weird ошибкам посвящается. Access denied.

Наверное много кто уже столкнулся с JavaScript ошибкой "Access denied" после установки Windows XP Service Pack 2. Эта ошибка может быть вызвана многими причинами и одну из них я сегодня нашел.
Internet Explorer может закрыть доступ ко всем свойствам объекта document на странице, которая была открыта после редиректа.
Эта ошибка описана в Knowledge Base статье (Article ID: 889386). Так же там написано что ошибка исправлена в накопительном обновлении MS05-020. Хотя у меня и установлено это обновление, я все равно получал эту ошибку.

Судя по всему, ошибку не исправили полностью. В моей ситуации ошибка происходила на ASPX старице, которая загружалась во фрейм. До перевода этой страницы на ASP.NET (она была ASP), все работало нормально. Я убрал весь HTML из этой страницы и оставил только тестовый кусок JavaScript кода, который обращается к document.all. Судя по всему, возникновение ошибки связано с временем работы страницы, потому что после удаления некоторых "тяжелых" вызовов методов на server-side, ошибка не повторялась.

От этой проблемы спасает отказ от редиректа, Server.Transfer, или редирект с помощью document.location.href = "some_page.aspx".