我可以在任何浏览器上禁用 SOP(同源策略)进行开发吗?

IT技术 javascript soap wsdl same-origin-policy
2021-02-20 07:47:26

我想在我的 Windows 机器上开发 JavaScript。你知道我可以关闭同源策略以便我可以在本地开发的浏览器吗?Firefox 将是最佳选择。

或者,如果您知道我可以用于 SOAP/WSDL 站点的代理,那也很棒。

我正在尝试使用Javascript SOAP Client

6个回答

更新 6/2012:这在撰写本文时曾经有效,但显然不再有效。对不起。

在 Firefox 中(也可能适用于其他基于 Gecko 的浏览器),您可以使用以下 JavaScript 代码段来允许跨域调用:

if (navigator.userAgent.indexOf("Firefox") != -1) {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    } 
    catch (e) {
        alert("Permission UniversalBrowserRead denied -- not running Mozilla?");
    }
}

看起来在 Chromium 问题跟踪器中创建了一个问题以实现相同的功能,因此您可以尝试使用参数启动 Chrome --disable-web-security我不知道这到底是在哪个版本上运行,但至少诺基亚的WRT 工具带有 Chrome 安装,实际上允许从其他站点加载内容。

作为记录,这几乎是用于开发的等效 Chrome/Chromium 启动参数字符串:“--allow-file-access-from-files --disable-web-security --enable-file-cookies --disk-cache -size=1 --media-cache-size=1"
2021-04-24 07:47:26
这确实是测试代码的方法。弹出警告,然后 Just Works。非常感谢!
2021-05-12 07:47:26

不幸的是,使用以下内容:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

已在 Firefox 5 中禁用。

https://bugzilla.mozilla.org/show_bug.cgi?id=667312

我想在这里指出一个明显的事情。如果 Firefox 5 不允许我这样做,而我确实需要这样做,我将改用 Firefox 4。不是世界末日。
2021-05-05 07:47:26

在本地服务器上创建一个呼叫远程服务器的页面,并与远程服务器回答相同的问题。

例如,javascript 调用本地服务器获取 JSON。本地服务器为该 JSON 调用远程服务器。本地服务器从远程服务器接收 JSON 并将其发送到 javascript。

使用 Chromium 13.07,您可以在禁用安全性的情况下启动它:

/usr/bin/chromium-browser --disable-web-security

这是在 Ubuntu 11 上,但将位置更改为您的系统。

/opt/google/chrome/google-chrome --disable-web-security 在 Linux Mint 11.04、Google Chrome 14.0.8 上对我有用
2021-04-18 07:47:26

在解决生产中的同源策略时,所有给出的答案都是好的。

对于开发,没有方便的方法来“禁用”此安全检查。有解决方法(请参阅其他答案)或黑客(您可以使用 Greasemonkey 包装 JavaScript 并使用其 GM_xmlhttprequest 作为临时措施),但实际上无法像您描述的那样“关闭它”。