JavaScript возвращает доступ запрещен - PullRequest
0 голосов
/ 16 марта 2010

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

Заранее спасибо

Ответы [ 2 ]

5 голосов
/ 16 марта 2010

Если вы пытаетесь получить доступ к объектам окна других фреймов или делаете ajax-запросы для загрузки информации с других сайтов и т. Д., Вы получите ошибки об отказе в доступе, если только 1) Ресурс не отличается от origin , или B) Вы используете браузер с поддержкой CORS , ресурс поддерживает CORS и предоставляет вам доступ.

Я могу 'Я не могу сразу думать о других ошибках в доступе в JavaScript, так что я бы внимательно посмотрел в любом месте, где вы пытаетесь получить доступ к другим объектам окна или выполняете Ajax-запросы.

Это большой шаг (и не предназначен длябыть MS-Bashing), но если вы видите это только в IE, а не в других браузерах, IE имеет проблему с совмещением пространств имен id и name на страницах, так что если (например) у вас есть iframe настраница с тем же name, что и id чего-то другого на вашей странице, и вы пытаетесь получить доступ к другой вещи, IE может подумать, что вы пытаетесь получить доступ к iframe - что будет проблемой доступа, еслиiframe содержитсодержание не придерживается СОП.Опять же, натянуто, но я видел, как люди сталкивались с проблемами id против name с IE столько раз ... Страница Microsoft на getElementById говорит, что это проблема в IE6и IE7, но не в IE8, так что это положительный шаг.

1 голос
/ 16 марта 2010

Помните, JavaScript должен загружать информацию из того же домена, на котором он запущен.

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

...