如何在 Firefox 上启用 CORS

问题描述 投票:0回答:6

如何在 Firefox 上允许 CORS

我在 Chrome 和 Internet Explorer 上轻松管理它,但在 Firefox 上却完全失败了。我编辑了以下 about:config 条目

security.fileuri.strict_origin_policy = false

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

跨源资源共享(CORS)

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

有确定的解决方案吗?

PS:FORCECORS 也不起作用......

firefox cors same-origin-policy
6个回答
30
投票

不对浏览器执行任何操作。所有现代浏览器(自 Firefox 3.5 起)默认支持 CORS。

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


security.fileuri.strict_origin_policy

 用于让本地 HTML 文档中的 JS 访问您的整个硬盘。不要将其设置为 
false
,因为它会使您容易受到下载的 HTML 文档(包括电子邮件附件)的攻击。


10
投票
只有当服务器发送此标头时才有可能:

Access-Control-Allow-Origin: *


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

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

4
投票
这个 Firefox 插件可能适合您:

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

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


2
投票
我被这个问题困扰了很长一段时间(CORS在FF中不起作用,但在Chrome等中起作用)。没有任何建议可以帮助。最后,我发现我的本地开发子域(如 sub.example.dev)在

/etc/hosts 中没有明确提及,因此 FF 无法找到它并显示令人困惑的错误消息 'Aborted...' 在开发工具面板中。

将确切的子域放入我的本地

/etc/hosts 解决了问题。 /etc/hosts在unix系统中只是一个纯文本文件,所以你可以在root用户下打开它,并将你的子域名放在'127.0.0.1'ip地址前面。


0
投票
通常您无法选择设置发送服务器,因此我将 JavaScript 代码中的 XMLHttpRequest.open 调用更改为本地

get-file.php 文件,其中包含以下代码:

<?php $file = file($_GET['url']); echo implode('', $file); ?>
JavaScript 代码正在执行此操作:

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();
就我而言,这完美地解决了限制/情况。无需破解 Firefox 或服务器。只需将带有小型 PHP 文件的 JavaScript/HTML 文件加载到服务器中即可。


0
投票
CORS 问题仅在 Firefox 上

如果您在 Firefox 上遇到 CORS 问题,但在其他浏览器上没有,您可能需要启用企业根证书

    进入火狐页面:
  • about:config
    
    
  • 然后搜索enable security.enterprise_roots
  • 单击它并将其设置为启用
© www.soinside.com 2019 - 2024. All rights reserved.