如何在Firefox上启用CORS?

时间:2014-08-26 11:33:33

标签: firefox cors same-origin-policy

有人可以告诉我如何在firefox上使用CORS吗?我很容易在Chrome和IE上管理它,但我完全没有使用Firefox。我编辑了以下关于:config entry

的内容
security.fileuri.strict_origin_policy = false

此尝试已在此处多次发布,并在其他网站上也被告知,但它没有效果。我阅读了同源政策的Mozilla指南:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

但它只是解释了CORS和相关主题。未列出在FF上启用它的解决方法。

我真的很感激一个明确的解决方案。

ps:FORCECORS无论如何都不起作用......

7 个答案:

答案 0 :(得分:18)

对浏览器不做任何操作。默认情况下,CORS is supported适用于所有现代浏览器(自Firefox 3.5起)。

JavaScript访问的服务器必须通过CORS HTTP响应头为托管HTML文档的站点提供JS运行权限。


security.fileuri.strict_origin_policy用于为本地HTML文档中的JS提供对整个硬盘的访问权限。不要将其设置为false,因为它会使您容易受到下载的HTML文档(包括电子邮件附件)的攻击。<​​/ p>

答案 1 :(得分:9)

只有在服务器发送此标头时才可以:Access-Control-Allow-Origin: *

如果这是您的代码,那么您可以像这样设置它(PHP):

header('Access-Control-Allow-Origin: *');

答案 2 :(得分:2)

我长期坚持这个问题(CORS在FF中不起作用,但在Chrome和其他人中起作用)。没有建议可以帮助。最后,我发现我的本地开发子域(如sub.example.dev)未在 / etc / hosts 中明确提及,因此FF无法找到它并显示令人困惑的错误消息开发工具面板中的“已中止...”

将确切的子域放入我的本地 / etc / hosts 修复了问题。 / etc / hosts 只是unix系统中的纯文本文件,因此您可以在root用户下打开它,并将您的子域放在'127.0.0.1'ip地址前面。

答案 3 :(得分:2)

此Firefox插件可能适用于您:

https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

出于开发目的,它可以打开和关闭CORS。

答案 4 :(得分:1)

只需记住两个简单步骤:
关于:config
security.fileuri.strict_origin_policy false

在DTP和Android上均可使用,但有时会返回true。

答案 5 :(得分:0)

通常你没有选择设置发送服务器所以我做了什么我把我的javascript中的XMLHttpRequest.open调用更改为本地get-file.php文件,其中我有以下代码:

&#13;
&#13;
<?php
  $file = file($_GET['url']);
  echo implode('', $file);
?>
&#13;
&#13;
&#13;

javascript正在执行此操作:

&#13;
&#13;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    // File content is now in the this.responseText
  }
};
xhttp.open("GET", "get-file.php?url=http://site/file", true);
xhttp.send();
&#13;
&#13;
&#13;

在我的情况下,这完全解决了限制/情况。无需破解Firefox或服务器。只需将带有小php文件的javascript / html文件加载到服务器中即可完成。

答案 6 :(得分:-3)

只需在浏览器中输入 CORS添加Firefox 然后下载该代码并安装在浏览器上,最后您会在右上角找到一个核心咒语,将绿色切换为启用,红色切换为不启用