Firefox 3 CORS XMLHTTPRequest 似乎不起作用

Posted

技术标签:

【中文标题】Firefox 3 CORS XMLHTTPRequest 似乎不起作用【英文标题】:Firefox 3 CORS XMLHTTPRequest doesn't seem to work 【发布时间】:2011-05-26 01:10:55 【问题描述】:

我实现了一个 REST 服务,我从不同域上的 javascript 应用程序调用该服务。

我正在尝试执行 GET 请求,并使用自定义身份验证方案设置 Authorization: 标头。

因为我设置了一个自定义标头,Firefox 将从预检 OPTIONS 请求开始。这个请求看起来像这样(简化):

OPTIONS /v1/articles HTTP/1.1
Host: example.org
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13 Firephp/0.5
Origin: http://example.com
Access-Control-Request-Method: GET
Access-Control-Request-Headers: authorization

我的回复如下:

HTTP/1.1 200 OK
Date: Wed, 15 Dec 2010 16:36:47 GMT
Server: Apache/2.2.9 (Debian) PHP/5.3.3-0.dotdeb.1 with Suhosin-Patch mod_vhost_hash_alias/1.0
X-Powered-By: PHP/5.3.3-0.dotdeb.1
Access-Control-Allow-Origin: http://example.com
Access-Control-Request-Method: GET,POST,PUT,DELETE,HEAD,OPTIONS
Access-Control-Request-Headers: Authorization, X-Authorization
Content-Length: 2
Content-Type: application/json

在此之后,实际的 GET 请求根本就不会执行。我担心我的回答有误,但我似乎无法发现它。

另一个问题是我找不到详细的错误消息。如您所见,我也尝试了 X-Authorization 而不是 Authorization。

我的问题:

我的回复有问题吗?如何找到有关该问题的更多详细信息?

谢谢!

【问题讨论】:

【参考方案1】:

我需要重新审视这一点。第二天早上我意识到正确的标题是:

Access-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS
Access-Control-Allow-Headers: Authorization, X-Authorization

【讨论】:

奇怪。我遇到了完全相同的问题(没有 GET 请求),但我 am 使用了正确的标头...

以上是关于Firefox 3 CORS XMLHTTPRequest 似乎不起作用的主要内容,如果未能解决你的问题,请参考以下文章

FireFox的Angularjs CORS失败

使用 Axios 从前端访问 Django Rest API 时出现 Cors 错误

Firefox 忽略 CORS 方法

如何在 Firefox 上启用 CORS

WebAPi - Firefox 和 chrome 中的 CORS

如何在 Mozilla Firefox 中禁用 CORS?