Firefox 跨域请求
Posted
技术标签:
【中文标题】Firefox 跨域请求【英文标题】:Firefox Cross Domain Request 【发布时间】:2011-01-25 13:05:07 【问题描述】:我需要从在 firefox 中运行的脚本发出跨域请求(仅用于开发目的)。
这可以实现吗?也许修改 about:config
键?
谢谢!
【问题讨论】:
我更新了我的答案,我认为 Firefox 插件可以满足您的需求。 【参考方案1】:James Padolsey 有一篇关于如何使用 jQuery 跨域请求的精彩帖子,但该帖子也有很好的资源。需要在另一台服务器上进行一些调整,以允许使用 crossdomain.xml 进行跨域调用
【讨论】:
【参考方案2】:Opera 10.5 允许“允许跨域访问”。
【讨论】:
【参考方案3】:有点晚了,但我还是想在这里发布信息;
我没有完全阅读每个人的答案中的链接,但我快速浏览了一下,没有看到有人提到使用 PrivilegeManager - @987654321 @。使用它,您可以让您的 FireFox javascript 应用程序在浏览器中调用扩展安全权限的请求,包括跨域 XHR。
【讨论】:
【参考方案4】:Same Origin Policy 适用于所有浏览器。使用 javascript 您可以发送 GET 和 POST 请求,但是您将无法像使用 XHR 那样读取响应。 XHR 只能针对执行脚本的域进行。这是一条重要规则,因为它可以防止广泛传播的跨站请求伪造 (CSRF) 漏洞。
您可以使用flash with a crossdomain.xml file,我认为这是最强大的解决方案,因为它会完全满足您的需求并具有最佳的浏览器兼容性。
编辑:如果您特别希望在 Firefox 上运行的 JavaScript 绕过同源策略,那么您可以构建一个自定义插件。或者Cross Domain add-on 可能会满足您的需求。
【讨论】:
我不需要浏览器兼容性。这就是为什么我指定我只在 FF 上需要它。还是谢谢 有人知道 Rook 提到的“跨域插件”发生了什么吗?该链接似乎已失效,但我正在拼命寻找 Firefox 的附加组件,该附加组件允许发送跨域请求以用于开发目的(dojo mobile) @Benjamin Chodroff 老兄,没有人应该编写任何开发人员都可以用来发送跨域请求的插件。那将是一个巨大的漏洞。我是说,一种选择是自己编写,然后要求用户安装它。从安全的角度来看,这仍然是个问题,但如果用户同意,那么我想就可以了。 @Rook - 有一个非常具体的用例被忽略了:移动开发(使用 html/JS)。将您的 HTML/JS 本地 部署到 iPhone/android 并通过 file:/// 运行它,这不是跨域的安全问题。这就是为什么我需要一个 Firefox 插件来忽略跨域安全问题,因为我通过 file:/// 在本地加载文件,所以我可以在我的常规桌面上测试移动应用程序(并且有像 Firebug 这样的工具来帮助调试!) 我认为这个插件和其他插件一样有用。如果他真的不想这样做,谁会安装那个插件。【参考方案5】:cross-site xmlhttprequest with CORS
【讨论】:
太酷了!仍然有一点限制,因为它不支持所有的 firefox 版本,并且要求网站遵守此政策。很棒的信息:)【参考方案6】:正如“The Rook”所述,您可以使用 Flash 执行跨域请求,前提是您正在与之交谈的服务器提供 XML 策略文件以授予您的服务器访问权限。如果您控制两台服务器,这应该很容易完成。
如果您不想自己编写任何 Flash 代码,或者如果您希望能够通过 SSL/TLS 进行跨域,请查看开源 Forge 项目:
http://github.com/digitalbazaar/forge/blob/master/README
【讨论】:
只要控制了服务器,还不如只用CORS。 今天(2013 年)绝对是这样。虽然,可能仍然存在您希望/需要对 TLS 堆栈进行更多控制的用例,因此上述建议可能仍然适用。以上是关于Firefox 跨域请求的主要内容,如果未能解决你的问题,请参考以下文章
跨域请求仅在 Firefox 中被阻止! [选项:403 禁止]