1

ある種のログインを実行する次のコーヒー スクリプトがあります。

signIn: (url, completion) ->
  $.ajax
    method: 'GET'
    url: url
    dataType: 'json'
    error: (jqXHR, status, errorThrown) ->
      completion false, errorThrown
    success: (data)->
      completion true, data.Identifier

ブラウザで指定された URL を確認すると、有効な JSON 応答が返されます。

ただし、JavaScript を使用してこの呼び出しを実行すると、コンソールに次のエラーが表示されます。難読化のために URL を変更したことに注意してください。

XMLHttpRequest cannot load http://my.servicedomain.com/session/someIdentifier?access_token=secret. 
Origin http://html.server.net is not allowed by Access-Control-Allow-Origin.

これらは、my.servicedomain.comサーバーから取得したヘッダーです。

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 1417
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Authorization
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Authorization
Date: Wed, 10 Jul 2013 14:24:35 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Connection: Keep-Alive

Access-Control-Allow-Origin: *応答ヘッダーにあるにもかかわらず、このエラーが発生するのはなぜですか?

4

1 に答える 1

0

私は自分で答えを見つけました。応答でヘッダーが重複していることはわかっていましたが、これは問題にならないと想定していました。

CORS Specによると、これは問題のようです。

応答にゼロまたは複数の Access-Control-Allow-Origin ヘッダー値が含まれている場合は、fail を返し、このアルゴリズムを終了します。

これは、この SO スレッドでも説明されています。

"Access-Control-Allow-Origin: *" ヘッダーを複製すると CORS が壊れますか?

于 2013-07-10T14:32:50.223 に答える