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

时间:2008-12-01 10:11:28

标签: javascript soap wsdl same-origin-policy

我想在我的Windows机器上开发JavaScript。你知道一个我可以关闭同源政策的浏览器,所以我可以在本地开发吗? Firefox将是最佳的。

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

我正在尝试使用JavaSCript SOAP Client

10 个答案:

答案 0 :(得分:15)

更新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问题跟踪器中创建了an issue以实现相同的功能,因此您可以尝试使用参数--disable-web-security启动Chrome。我不知道哪个版本的确适用,但至少诺基亚WRT Tools附带一个Chrome安装,实际上允许从其他网站加载内容。

答案 1 :(得分:6)

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

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
Firefox 5中已禁用

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

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

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

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

答案 4 :(得分:1)

当谈到在生产中绕过相同的原始政策时,所有给出的答案都是好的。

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

答案 5 :(得分:0)

  

Firefox将是最佳选择。

如果您可以使用Internet Explorer,则可以使用.hta应用程序

http://msdn.microsoft.com/en-us/library/ms536496(VS.85).aspx

(这是Selenium测试自动化工具处理问题的方法之一)

答案 6 :(得分:0)

我对此没有任何实际经验,但FireFox 3.5允许根据W3C Cross-Origin Resource Sharing Draft提供跨站点JS。

请参阅:https://developer.mozilla.org/En/HTTP_access_control

答案 7 :(得分:0)

在Chrome(& Chromium)48及以上版本中,您应该添加标记--user-data-dir,如下所示:

chromium-browser --disable-web-security --user-data-dir

它有效。

答案 8 :(得分:0)

我在Mac上运行此命令,当我使用google chrome运行我的项目时,该命令对我有效。

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

答案 9 :(得分:-1)

您还可以通过ssh将本地端口重定向到远程服务器和端口。