Firefox “跨域请求被阻止”,尽管有标头 [已关闭]

2022-08-30 02:33:10

我正在尝试发出一个简单的跨域请求,而Firefox一直在用这个错误阻止它:

跨源请求已阻止:同源策略不允许读取位于 [url] 的远程资源。可以通过将资源移动到同一域或启用 CORS 来解决此问题。[网址]

它在Chrome和Safari中工作正常。

据我所知,我已经在我的PHP上设置了所有正确的标头,以允许它工作。以下是我的服务器正在响应的内容

HTTP/1.1 200 OK
Date: Mon, 23 Jun 2014 17:15:20 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type
Access-Control-Request-Headers: X-Requested-With, accept, content-type
Vary: Accept-Encoding
Content-Length: 186
Content-Type: text/html

我尝试过使用Angular,jQuery和基本的XMLHTTPRequest对象,如下所示:

var data = "id=1234"
var request = new XMLHttpRequest({mozSystem: true})
request.onload = onSuccess;
request.open('GET', 'https://myurl.com' + '?' + data, true)
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
request.send()

...它适用于除Firefox以外的所有浏览器。任何人都可以帮忙吗?


答案 1

事实证明,这与CORS无关 - 这是安全证书的问题。误导性错误= 4小时的头痛。


答案 2

我发现我的问题是我发送交叉请求的服务器有一个不受信任的证书。

如果要使用 连接到跨域,则必须先为此证书添加例外。https

您可以通过访问一次阻止的链接并添加异常来执行此操作。