【问题标题】:FireFox refuses response to OPTIONSFireFox 拒绝回应 OPTIONS
【发布时间】:2013-11-19 00:22:21
【问题描述】:

我有一个由 HTTP 提供的页面。客户端代码向同一域发送 AJAX 授权请求,但使用 HTTPS。 (所以它是 CORS)。

FireFox 生成此请求:// 域和 cookie 已更改

OPTIONS /auth/registration/json/info/ HTTP/1.1
Host: my-site.dev
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,pl;q=0.8,ru;q=0.6,en-us;q=0.4,en;q=0.2
Accept-Encoding: gzip, deflate
Origin: http://my-site.dev
Access-Control-Request-Method: GET
Access-Control-Request-Headers: x-requested-with
Connection: keep-alive

我的服务器响应:

HTTP/1.1 200 OK
Server: nginx/1.4.1
Date: Thu, 07 Nov 2013 09:55:55 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: https://my-site.dev
Vary: Cookie
Access-Control-Allow-Origin: http://my-site.dev
Access-Control-Allow-Methods: OPTIONS, GET
Set-Cookie: csrftoken=foobar; expires=Thu, 06-Nov-2014 09:55:55 GMT; Max-Age=31449600; Path=/

0

FireBug 显示 OPTIONS 请求成功,但之后没有触发 GET 请求:

我的回复有什么问题?

【问题讨论】:

  • 我只是在推测,因为没有任何代码可以重现这一点,但有可能有重复的标题,您实际上允许多个域,这会使它们都无效(仅一个是允许的)。 Access-Control-Allow-Origin: https://my-site.dev,然后是Access-Control-Allow-Origin: http://my-site.dev
  • 我尝试将域合并到一个标头中,通过逗号或空格连接。结果相同。
  • 据我所知,关键是 CORS 不能有多个域。每次其中一个请求时,您都需要在服务器端更改标头。

标签: javascript ajax firefox cross-domain http-options-method


【解决方案1】:

Qantas 94 Heavy,你是对的。应该只有一个Access-Control-Allow-Origin 标头,只有一个域:域,在Origin 请求标头中指定。

这是firefox接受的正确答案:

HTTP/1.1 200 OK
Server: nginx/1.4.1
Date: Thu, 07 Nov 2013 09:55:55 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Cookie
Access-Control-Allow-Origin: http://my-site.dev      // The same as `Origin`
Access-Control-Allow-Methods: OPTIONS, GET
Set-Cookie: csrftoken=foobar; expires=Thu, 06-Nov-2014 09:55:55 GMT; Max-Age=31449600; Path=/

0

【讨论】:

    猜你喜欢
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2019-10-15
    相关资源
    最近更新 更多