Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Chrome中的文件Url跨域问题-意外_Html_Svg_Cross Domain_Embed - Fatal编程技术网

Html Chrome中的文件Url跨域问题-意外

Html Chrome中的文件Url跨域问题-意外,html,svg,cross-domain,embed,Html,Svg,Cross Domain,Embed,问题是Chrome在使用文件url时抛出跨域错误 我使用对象标记将svg文档嵌入到HTML中,对象标记带有相对路径形式的数据属性,在onload事件发生时,我希望使用getSVGDocument()获取SVGDocument 我使用文件url访问html文件,当调用getSVGDocument时,Chrome给出了一个跨域错误。Chrome实际上嵌入了SVG,但getSVGDocument不返回SVG的DOM Chrome错误是 “不安全的JavaScript试图使用URL访问帧file:///

问题是Chrome在使用文件url时抛出跨域错误

我使用对象标记将svg文档嵌入到HTML中,对象标记带有相对路径形式的数据属性,在onload事件发生时,我希望使用getSVGDocument()获取SVGDocument

我使用文件url访问html文件,当调用getSVGDocument时,Chrome给出了一个跨域错误。Chrome实际上嵌入了SVG,但getSVGDocument不返回SVG的DOM

Chrome错误是 “不安全的JavaScript试图使用URL访问帧file:///C:/MyFiles/website/Dir1/a.svg 从带有URL的框架file:///C:/MyFiles/website/Dir1/index.html 域、协议和端口必须匹配。“


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

您遇到了Chrome的跨域/文件安全限制

您可以按照中的说明和中关于如何在关闭这些选项的情况下启动Chrome的详细信息禁用此选项

不过,有一句话要提醒大家:它们被称为“安全限制”,这是有原因的,所以在浏览第三方网站时不要使用它。正常浏览网页时关闭此功能非常危险。例如,关闭此功能后,我现在可以代表您向gmail.com、facebook.com和yourbank.com等网站提出请求,您的cookies将设置为允许我冒充您

如果您仍然需要此功能,则需要使用
--disable web security
标志运行chrome:

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

如果您需要有关如何应用该标志的跨操作系统说明,请参阅。

从文件URL加载的文档具有特殊的安全限制阻止您碰巧保存到桌面上的恶意脚本做坏事。尝试运行本地web服务器或将文件上载到“适当”的web服务器,看看是否仍会出现错误。web服务器是我想要避免的。@robertc您能否澄清从相对文件URL加载svg时存在的安全问题(相对图像、css、js似乎都正常工作)?我只遇到了这个错误:加载URL的尝试不安全file:///Users/ericbloch/repos/set/shapes.svg#oval 从带有URL的框架file:///Users/ericbloch/repos/set/index.html. 域、协议和端口必须匹配。@EricBloch您必须询问Chrome开发人员,通常与
iframe
有关,我在这里的一个bug中问到:(到目前为止与iframe无关)。您文章中的两个so链接非常有用,涵盖了为开发目的更改Chrome安全设置的所有可能性+1.