默认情况下,chrome 不允许跨源请求,chrome 来自file:
协议。您可以关闭 chrome、chromium 的打开实例并使用以下命令启动--disable-web-security
flag
google-chrome --disabled-web-security
或通过设置不同的值在打开现有实例的情况下启动user-data-dir
google-chrome --disable-web-security --user-data-dir="~/.config/google-chrome-temp"
有没有一种方法可以完成我需要做的事情,同时
不需要我修改本地网络浏览器的策略?
不是chrome,chrome不修改默认设置;或者创建一个 chromium 扩展或应用程序来执行网络请求 - 哪里也合适permissions
需要设置。
限制是有目的的。几个安全问题之一是本地计算机上的用户可能在不知情的情况下上传其计算机上一个或多个目录中的所有文件的列表,并且可能还上传目录本身,而不必意识到这一事实,请参阅
HTML5 文件 API 中的 FileReader.readAsText 如何工作?
哪个;请注意,在没有设置标志的情况下也可能发生。或者,请求的脚本可以执行读取或写入本地文件系统的操作,而用户不必知道其本地文件系统正在被外部脚本访问。
不过,在存在限制的情况下,用户必须执行肯定操作才能禁用限制对本地文件系统的访问的默认设置file:
协议,并限制本地文件系统从中获取资源null
origin
到不同的起源。
正如@StefanoBalzarotti 所指出的
抱歉,如果我很挑剔,但此限制与“文件:”无关
协议,即使有“数据:”、“关于:”等……你也不能打叉
原产地请求。提出跨源请求的要求是
有一个起源主机
应该考虑到浏览器开发人员对跨源请求实施这种默认限制的原因。
谨慎使用,并意识到旗帜的重要性,旗帜--disable-web-security
and --allow-file-access-from-files
, see
专为本地 Web 开发而设计,而不是作为需要 Web 应用程序资源的本地应用程序的解决方法。
--disable-web-security
不要强制执行同源策略。 (用过的
由人们测试他们的网站。)
--allow-file-access-from-files
默认情况下,file:// URI 无法读取
其他文件:// URI。对于需要的开发人员来说,这是一个覆盖
用于测试的旧行为。
标志描述中的“测试”术语应强调标志的使用。这些标志不是为生产用途而设计的。
备择方案,
创建一个 chromium 扩展来执行网络任务;
创建一个 Chrome 应用来执行网络任务
其中任一需要适当的permissions
设置于manifest.json
.