Ошибка URL-адреса файла Url в Chrome-Unexpected

Проблема заключается в том, что 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

Вы нажимаете ограничения на кросс-домен/безопасность для Chrome.

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

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

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

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

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