有没有办法在Google的Same-origin policy浏览器上停用Chrome?
答案 0 :(得分:1013)
是的。对于OSX,打开终端并运行:
$ open -a Google\ Chrome --args --disable-web-security --user-data-dir
--user-data-dir required on Chrome 49+ on OSX
对于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。稳定性和安全性将受到影响。
但是,您可以在开发时忽略该消息。
答案 1 :(得分:900)
关闭chrome(或chrome)并使用--disable-web-security
参数重新启动。我刚刚对此进行了测试,并验证了我可以访问iframe的内容,其中src =“http://google.com”嵌入在“localhost”(在chrome 5 / ubuntu下测试)的页面中。对我来说,确切的命令是:
注意:在运行命令
之前杀死所有chrome实例chromium-browser --disable-web-security --user-data-dir="[some directory here]"
浏览器会在第一次打开时警告您“您使用的是不受支持的命令行”,您可以忽略它。
来自铬源:
// Don't enforce the same-origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";
在Chrome 48之前,您可以使用:
chromium-browser --disable-web-security
答案 2 :(得分:455)
对于Windows用户:
此处接受解决方案的问题,在我看来,如果您已经打开Chrome并尝试运行它,则无法运行。
然而,在研究这篇文章时,我发现了一篇关于超级用户的帖子, Is it possible to run Chrome with and without web security at the same time? 。
基本上,通过运行以下命令(或使用它创建快捷方式并通过它打开Chrome)
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
您可以在打开其他“安全”浏览器实例并正常工作的同时打开一个新的“不安全”Chrome实例。
重要:每次打开窗口时删除/清除C:/Chrome dev session
文件夹,因为第二次--disable-web-security
无法正常工作。因此,您无法保存更改,然后再次将其作为第二个不安全的Chrome实例--disable-web-security
再次打开。
答案 3 :(得分:109)
对于 Windows :
答案 4 :(得分:72)
我不想重新启动Chrome并禁用我的网络安全性(因为我在开发时正在浏览)并且偶然发现了这个Chrome扩展程序。
基本上它是一个小的切换开关来打开和关闭Allow-Access-Origin-Control检查。对我来说非常适合我正在做的事情。
编辑:我在前几天尝试使用另一个项目并停止工作。卸载并重新安装扩展程序修复它(重置默认值)。编辑2:我再也无法让它始终如一地工作
答案 5 :(得分:57)
Windows 用户 Chrome版本60.0.3112.78(解决方案经过测试和工作的那天),至少到今天19.01.2019(版本71.0.3578.98)。您不需要关闭任何Chrome实例。
请注意不要使用此特定浏览器进行浏览,因为您可以使用它!
答案 6 :(得分:46)
似乎以上解决方案都没有真正起作用。最近的Chrome版本不再支持 - disable-web-security 。
Allow-Control-Allow-Origin:* - chrome extension 部分解决了问题。仅当您的请求使用GET方法并且没有自定义HTTP标头时,它才有效。否则,chrome将发送OPTIONS HTTP请求作为飞行前请求。如果服务器不支持CORS,它将使用404 HTTP状态代码进行响应。该插件无法修改响应HTTP状态代码。所以chrome会拒绝这个请求。 Chrome插件无法根据当前的chrome扩展API修改响应HTTP状态代码。并且您也无法对XHR发起的请求进行重定向。
不确定为什么Chrome让开发人员的生活如此艰难。它阻止了所有可能的方法来禁用XSS安全检查,即使是完全没必要的开发使用。
经过几天的努力和研究,一个解决方案对我来说非常有效:使用 corsproxy 。你有两个选择: 1.使用[https://cors-anywhere.herokuapp.com/] 2.在本地方框中安装corsproxy: npm install -g corsproxy
[更新于2018年6月23日] 最近我正在开发一款需要再次使用corsproxy的SPA应用。但似乎没有github上的corsproxy可以满足我的要求。
所以我决定使用nodejs开发自己的corsproxy版本。它实际上非常简单。我已经将它作为github上的要点发布了。这是源代码要点: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
启动CORSProxy服务器(http端口8080): node static_server.js 8080
答案 7 :(得分:41)
对于Windows ...在桌面上创建Chrome快捷方式
右键单击>属性>快捷
编辑“目标”路径:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
(将'C:.... \ chrome.exe'更改为Chrome所在的位置。)
etvoilà:)
答案 8 :(得分:35)
我发现最好的方法是在Windows桌面上复制Chrome或Chrome Canary快捷方式。将此快捷方式重命名为" NO CORS"然后编辑该快捷方式的属性。
在目标中将--disable-web-security --user-data-dir="D:/Chrome"
添加到目标路径的末尾。
你的目标应该是这样的:
更新:新标志已添加。
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:/Chrome"
答案 9 :(得分:31)
在Mac终端上尝试此命令 -
open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security
它会打开另一个具有禁用安全性的chrome实例,并且不再存在CORS问题。此外,您不再需要关闭其他chrome实例。将localhost URL更改为您的URL。
答案 10 :(得分:20)
你可以使用这个名为“Allow-Control-Allow-Origin:*”的chrome插件......它使它变得简单而且工作得非常好。 check it here: *
答案 11 :(得分:19)
对于Selenium Webdriver,在这种情况下,您可以使用适当的参数(或“开关”)让selenium启动Chrome。
@driver = Selenium::WebDriver.for(:Chrome, {
:detach => false,
:switches => ["--disable-web-security"]
})
答案 12 :(得分:13)
如果您在Linux上使用Google Chrome,则可以使用以下命令。
google-chrome --disable-web-security
答案 13 :(得分:12)
此Chrome插件适用于我: Allow-Control-Allow-Origin: * - Chrome Web Store
答案 14 :(得分:9)
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="c:\temp\chrome"
Unsafe Chrome.exe
现在您在台式机上拥有一个不安全的Google Chrome版本,无法将其用于调试前端应用程序而没有任何CORS问题。
答案 15 :(得分:9)
使用当前最新的chrome版本(73.0.3683.86),使其在我的测试中起作用的唯一方法是使用以下标志启动chrome(更改 D:\ temp 按您的喜好):
-禁用站点隔离试用版-禁用Web安全 --user-data-dir =“ D:\ temp”
在Windows中,单击“开始”按钮,然后复制并粘贴以下内容:
chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"
答案 16 :(得分:9)
// *** app.js ***
.run(function (FIREBASE_CONFIG) {
firebase.initializeApp(FIREBASE_CONFIG);
});
// *** DataService ***
var root = firebase.database().ref();
var service = {
root: root,
items: root.child('items'),
tastings: root.child('tastings'),
users: root.child('users'),
votes: root.child('votes')
};
return service;
// *** Controller ***
$scope.tastings = $firebaseArray(dataService.tastings);
答案 17 :(得分:8)
仅限MAC用户
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
答案 18 :(得分:8)
在Windows 10上,以下内容将起作用。
<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt
答案 19 :(得分:8)
您只需使用此Chrome扩展程序Allow-Control-Allow-Origin
即可只需点击扩展图标即可根据需要启用或关闭启用跨资源共享
答案 20 :(得分:7)
根据Ola Karlsson的回答,确实最好的方法是在不同的会话中打开不安全的Chrome。这样您就不必担心关闭所有当前打开的标签页,也可以继续使用原始Chrome会话安全地浏览网页。
这些批处理文件应该适用于Windows。
将其放在Chrome_CORS.bat file中以方便使用
start "" "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:/_chrome_dev" --disable-web-security
这个适用于 Chrome Canary 。 Canary_CORS.bat
start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security
答案 21 :(得分:6)
对于mac用户:
open -a "Google Chrome" --args --disable-web-security --user-data-dir
在Chrome 48之前,你可以使用:
open -a "Google Chrome" --args --disable-web-security
答案 22 :(得分:6)
答案 23 :(得分:5)
在Linux- Ubuntu上,要同时运行正常会话和不安全会话,请运行以下命令:
google-chrome --user-data-dir=/tmp --disable-web-security
答案 24 :(得分:4)
这是一个不断变化的目标。...今天,我需要添加另一个标志来使其正常工作:
--disable-site-isolation-trials
OS X:
open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome_dev_2" --disable-web-security --disable-site-isolation-trials
答案 25 :(得分:3)
对于Windows:
(使用 Windows 8.1,chrome 44.0 )
首先,关闭谷歌浏览器。
然后,打开命令提示符并转到&chrome; chrome.exe&#39;是
( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".
所以我键入:
cd C:\Program Files (x86)\Google\Chrome\Application
)
现在输入:chrome.exe --disable-web-security
将打开一个新的镀铬窗口。
答案 26 :(得分:2)
不要这样做! You're opening your accounts to attacks。执行此操作后,任何第三方站点都可以开始向您登录的其他网站发送请求。
而是运行本地服务器。它就像打开shell /终端/命令行并输入
一样简单cd path/to/files
python -m SimpleHTTPServer
然后将浏览器指向
http://localhost:8000
如果发现它太慢consider this solution
答案 27 :(得分:1)
在Windows PC上,使用较旧版本的Chrome,该命令适用于所有人。 我将我的Chrome降级为26版本并且有效。
答案 28 :(得分:1)
尝试转到此页面并为您的网站域禁用域安全策略。
chrome://net-internals/#hsts
答案 29 :(得分:1)
对于OSX,请从终端运行以下命令:
open -na Google\ Chrome --args --disable-web-security --user-data-dir=$HOME/profile-folder-name
这将启动一个新的Google Chrome实例,并在顶部显示警告。
答案 30 :(得分:1)
在Ubuntu中使用以下命令启动chrome(禁用同一来源策略并以分离模式打开chrome):
nohup google-chrome --disable-web-security --user-data-dir='/tmp' &
答案 31 :(得分:0)
我有时会使用它来将localhost前端站点发布到localhost后端API(例如,对旧的.NET API进行React)。我在Windows 10桌面上创建了一个单独的快捷方式,因此它从不用于正常浏览,仅用于本地调试。我做了以下事情: -
"[PATH_TO_CHROME]\chrome.exe" --disable-web-security
您将收到有关此浏览器加载的警告,它不安全,只需关注您浏览器上的内容即可。我倾向于在桌面上重命名这个新的快捷方式,在资本方面,并将其从我的其他图标移开,因此不能将其与普通的Chrome混淆。
希望这有帮助!
答案 32 :(得分:0)
如果您使用网络服务器,则可以使用 Header
在 Apache 上
#define NET_RETURN_DATA_ERROR _EC(21) // Error occurs when verify returned data.
或在 <VirtualHost>
文件中。
.htaccess
在 Nginx 上
Header set Access-Control-Allow-Origin 'origin-list'
答案 33 :(得分:-1)
Chrome的Allow-Control-Allow-Origin插件不起作用。这是用于MacOS
我在自己的.profile中添加了alias chrome='open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir --disable-web-security'
作为别名。
其他命令将禁用我的其他扩展名,这将在禁用cors的情况下引导您的普通chrome
答案 34 :(得分:-1)
禁用此标志是 chrome - chrome://flags/#reduced-referrer-granularity
它应该工作