如何在 Firefox 上允许 CORS?
我在 Chrome 和 Internet Explorer 上轻松管理它,但在 Firefox 上却完全失败了。我编辑了以下 about:config 条目
security.fileuri.strict_origin_policy = false
此尝试已在此发布多次,并且在其他网站上也被告知,但没有任何效果。我阅读了 Mozilla 同源策略指南:
但它只是解释 CORS 和相关主题。未列出在 Firefox 上启用它的解决方法。
有确定的解决方案吗?
PS:FORCECORS 也不起作用......
不对浏览器执行任何操作。所有现代浏览器(自 Firefox 3.5 起)默认支持 CORS。
JavaScript 访问的服务器必须通过 CORS HTTP 响应标头向托管 JS 运行的 HTML 文档的站点授予权限。
security.fileuri.strict_origin_policy
用于让本地 HTML 文档中的 JS 访问您的整个硬盘。不要将其设置为
false
,因为它会使您容易受到下载的 HTML 文档(包括电子邮件附件)的攻击。
Access-Control-Allow-Origin: *
header('Access-Control-Allow-Origin: *');
/etc/hosts 中没有明确提及,因此 FF 无法找到它并显示令人困惑的错误消息 'Aborted...' 在开发工具面板中。
将确切的子域放入我的本地/etc/hosts 解决了问题。 /etc/hosts在unix系统中只是一个纯文本文件,所以你可以在root用户下打开它,并将你的子域名放在'127.0.0.1'ip地址前面。
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 文件加载到服务器中即可。
about:config