Chrome中的文件网址跨域问题 - 意外

Rak*_*aks 15 html embed html5 svg cross-domain

问题是关于Chrome使用文件网址引发跨域错误

我使用带有相对路径形式的data属性的object标签将svg文档嵌入到HTML中,onload事件我想使用getSVGDocument()获取SVGDocument.

我正在使用文件URL访问html文件,当调用getSVGDocument时,Chrome会发出跨域错误.Chrome实际上嵌入了SVG,但getSVGDocument不会返回SVG的DOM

Chrome错误是"不安全的JavaScript尝试使用URL文件访问框架:/// C:/MyFiles/website/Dir1/a.svg来自URL文件:/// C:/ MyFiles/website/Dir1/index.域名,协议和端口必须匹配."

正如您可能看到html和嵌入式文档svg的基本路径相同,那么为什么Chrome会抛出此错误?

Nat*_*eyn 16

您正在达到Chrome的跨域/文件安全限制.

您可以按照Chrome禁用同一来源政策中的说明禁用此功能,并详细说明Chrome中的访问权限和来源政策,因为我没有使用服务器来关闭如何启动Chrome.

但是有一个警告:出于某种原因,它们被称为"安全限制",所以在浏览第三方网站时不要使用它.在正常浏览网页时关闭非常危险的.例如,关闭此功能后,我现在可以代表您向gmail.com,facebook.com和yourbank.com这样的网站提出请求,并且您的Cookie将被设置为允许我伪装成您自己.

如果你真的需要这个,你需要使用--disable-web-security标志运行chrome :

chrome --disable-web-security # unix/linux only
Run Code Online (Sandbox Code Playgroud)

如果您需要有关如何应用标志的跨操作系统说明,请参阅http://www.chromium.org/developers/how-tos/run-chromium-with-flags.