0

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 リクエストを起動しません:

ここに画像の説明を入力

私の応答で何が間違っていますか?

4

1 に答える 1

0

カンタス 94 ヘビー、その通りです。要求ヘッダーAccess-Control-Allow-Originで指定されたドメイン: ドメインが 1 つだけのヘッダーが1 つだけある必要があります。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
于 2013-11-08T04:56:48.550 に答える