Проблема с кросс-доменом в Chrome - неожиданная - PullRequest
14 голосов
/ 19 мая 2011

Проблема в том, что Chrome выдает Cross Domain Error при использовании файла url

Я встраиваю документ svg в HTML, используя тег объекта с атрибутом данных в форме относительного пути, при событии onload я хочу получить SVGDocument с помощью getSVGDocument ().

Я обращаюсь к html-файлу с помощью URL-адреса файла, когда вызывается getSVGDocument, Chrome выдает междоменную ошибку. На самом деле Chrome встраивает SVG, но getSVGDocument не возвращает DOM для SVG

Ошибка Chrome «Небезопасная попытка JavaScript получить доступ к фрейму с помощью файла URL: /// C: /MyFiles/website/Dir1/a.svg из фрейма с файлом URL: /// C: /MyFiles/website/Dir1/index.html Домены, протоколы и порты должны совпадать. "

Как видите, базовый путь одинаков как для html, так и для внедренного svg документа, так почему же Chrome выдает эту ошибку?

1 Ответ

16 голосов
/ 20 мая 2011

Вы нарушаете ограничения междоменной / файловой безопасности Chrome.

Вы можете отключить это, следуя инструкциям в Отключить ту же политику происхождения в Chrome и подробности в Как получить доступ и политику происхождения в chrome, поскольку я не использую сервер о том, как запустить Chrome с выключенными.

Однако, предупреждающее слово: по какой-то причине они называются «ограничениями безопасности», поэтому не используйте их при просмотре сторонних сайтов. Это крайне опасно отключать при обычном просмотре веб-страниц. Например, если это отключено, я теперь могу от вашего имени отправлять запросы на такие сайты, как gmail.com, facebook.com и yourbank.com, и ваши куки будут установлены, что позволит мне маскироваться под себя.

Если вам все еще действительно это нужно, вам нужно запустить chrome с флагом --disable-web-security:

chrome --disable-web-security # unix/linux only

Если вам нужны перекрестные инструкции по применению флага, см. http://www.chromium.org/developers/how-tos/run-chromium-with-flags.

...