33

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

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

我正在尝试使用JavaSCript SOAP Client

4

10 回答 10

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

于 2010-05-05T07:44:37.813 回答
6

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

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

已在 Firefox 5 中禁用。

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

于 2011-07-05T01:54:27.133 回答
2

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

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

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

于 2011-08-30T00:19:12.937 回答
2

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

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

于 2008-12-03T19:07:01.577 回答
1

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

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

于 2008-12-03T20:21:36.640 回答
1

我在 mac 上运行这个命令,当我使用 google chrome 运行我的项目时它对我有效。

open -a Google\ Chrome --args --disable-web-security --user-data-dir
于 2019-05-31T08:29:04.600 回答
0

Firefox 将是最佳选择。

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

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

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

于 2008-12-01T10:19:25.467 回答
0

我对此没有真正的经验,但 FireFox 3.5 根据W3C Cross-Origin Resource Sharing Draft允许 Cross-Site JS 。

见:https ://developer.mozilla.org/En/HTTP_access_control

于 2009-11-25T16:43:30.523 回答
0

在 Chrome (& Chromium) 48 及更高版本中,您应该--user-data-dir像这样添加标志:

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

它有效。

于 2016-09-05T17:00:47.687 回答
-2

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

于 2009-03-05T17:51:58.733 回答