Что означает эта ошибка JavaScript? В доступе отказано в вызове метода для Location.toString - PullRequest
7 голосов
/ 27 августа 2008

Эта ошибка только начала появляться на всем нашем сайте.

В доступе к методу Location.toString отказано в разрешении

Я вижу сообщения в Google, которые предполагают, что это связано с flash и нашим crossdomain.xml. Что вызвало это и как вы это исправили?

Ответы [ 4 ]

8 голосов
/ 27 августа 2008

Используете ли вы JavaScript для связи между фреймами / фреймами, которые указывают на разные домены? Это не разрешено политикой безопасности JS «тот же источник / домен». Т.е. если у вас есть

<iframe name="foo" src="foo.com/script.js">
<iframe name="bar" src="bar.com/script.js">

И скрипт на bar.com пытается получить доступ к window["foo"].Location.toString, вы получите это (или подобное) исключение. Также обратите внимание, что та же политика происхождения также может применяться, если у вас есть контент из разных поддоменов. Здесь вы можете найти краткое и конкретное объяснение этого примерами.

2 голосов
/ 27 августа 2008

Вы, возможно, сталкивались с этой публикацией , но похоже, что обновление безопасности флэш-памяти изменило поведение crossdomain.xml, требуя от вас указать политику безопасности, разрешающую отправку произвольных заголовков из удаленный домен. Статья базы знаний Adobe (также упоминаемая в оригинальном сообщении) - здесь .

0 голосов
/ 27 августа 2008

Это, вероятно, вызвано изменением, внесенным в версию Flash Player, выпущенную в начале апреля, я не слишком уверен в деталях, но я предполагаю, что были проблемы безопасности с этой функциональностью.

Что вам нужно сделать, так это добавить это в свой файл crossdomain.xml (который должен находиться в webroot на ваших серверах)

Вы можете прочитать больше здесь: http://www.adobe.com/devnet/flashplayer/articles/flash_player9_security_update.html

Типичным примером файла crossdomain.xml является twitters , более подробную информацию о том, как работает файл, можно найти здесь.

0 голосов
/ 27 августа 2008

Эта запись предполагает наличие одной строки, которую необходимо добавить в файл crossdomain.xml.

<allow-http-request-headers-from domain="*" headers="*"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...