有没有办法在谷歌的Chrome浏览器上禁用同源策略?


当前回答

对于Windows:

(使用windows 8.1,chrome 44.0)

首先,关闭谷歌chrome。

然后,打开命令提示符并转到“chrome.exe”所在的文件夹。

( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".

所以我键入:cd C:\Program Files(x86)\Google\Chrome\Application)

现在键入:chrome.exe--禁用web安全

一个新的铬窗口将打开。

其他回答

只有对于OSX Catalina,以下命令对我有效。

open-n-a/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome--args--用户数据dir=“/tmp/Chrome_dev_test”--禁用web安全

是的。对于OSX,打开终端并运行:

$ open -a Google\ Chrome --args --disable-web-security --user-data-dir

--OSX上的Chrome 49+需要用户数据目录

对于Linux运行:

$ google-chrome --disable-web-security

此外,如果您试图访问本地文件以用于开发目的,如AJAX或JSON,也可以使用此标志。

--allow-file-access-from-files

对于Windows,进入命令提示符并进入Chrome.exe所在的文件夹,然后键入

chrome.exe --disable-web-security

这将禁用同源策略并允许您访问本地文件。

更新:对于Chrome 22+,您将看到一条错误消息,上面写着:

您正在使用不受支持的命令行标志:--disable web security。稳定和安全将受到影响。

然而,您可以在开发时忽略该信息。

这个Chrome插件适合我:允许控件允许来源:*-Chrome Web商店

编辑3:扩展似乎不再存在。。。这些天来,为了避开CORS,我通常会在单独的目录中设置另一个版本的Chrome,或者使用Firefoxhttps://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/相反

编辑2:我再也无法让这项工作持续下去了。

编辑:前几天我试着用另一个项目,但它停止了工作。卸载并重新安装扩展修复了它(以重置默认值)。

原始答案:

我不想重启Chrome并禁用我的网络安全(因为我在开发时正在浏览),无意中发现了这个Chrome扩展。

Chrome Web Store允许控件允许来源:*(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en)

基本上,它是一个小切换开关,用于打开和关闭“允许访问源代码控制”检查。对于我所做的一切来说,这是完美的。

似乎上述解决方案都不起作用。最近的chrome版本不再支持--disable web安全性。

允许控制允许来源:*-chrome扩展部分解决了问题。只有当您的请求使用GET方法并且没有自定义HTTP头时,它才能工作。否则,chrome将发送OPTIONS HTTP请求作为飞行前请求。如果服务器不支持CORS,它将使用404 HTTP状态代码进行响应。插件无法修改响应HTTP状态代码。所以chrome会拒绝这个请求。chrome插件无法根据当前的chrome扩展API修改响应HTTP状态代码。对于XHR发起的请求,也不能进行重定向。

不知道为什么Chrome会让开发者生活如此艰难。它阻止了禁用XSS安全检查的所有可能方式,即使是用于开发用途,这是完全不必要的。

经过几天的努力和研究,有一个解决方案对我来说非常有效:使用corsporoxy。这里有两个选项:1.使用[https://cors-anywhere.herokuapp.com/]2.在本地箱中安装corsporoxy:npm install-g corsporoxy

【2018年6月23日更新】最近我正在开发一款SPA应用程序,需要再次使用corsporoxy。但似乎github上的corsporoxy都不能满足我的要求。

出于安全原因,需要它在防火墙内运行。所以我不能使用https://cors-anywhere.herokuapp.com/. 它必须支持https,因为chrome不会阻止https页面中的https ajax请求。我需要在nodejs上运行。我不想维护另一个语言堆栈。

所以我决定用nodejs开发我自己版本的corsporoxy。其实很简单。我已经在github上发布了它作为一个要点。以下是源代码要点:https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

它是普通的nodejs代码,没有任何附加的依赖关系您可以在http和https模式下运行(通过传递https端口命令行中的数字),要运行https,需要生成cert和键并将它们放在webroot目录中。它还充当静态文件服务器它还支持飞行前OPTION请求。

要启动CORSProxy服务器(http端口8080):节点static_server.js 8080

要访问代理,请执行以下操作:http://host:8080/http://www.somesite.com