Backbone.js ベースのアプリを構築していて、奇妙な問題に直面しています。
特定の時点で、アプリがコレクション リソースを要求し、Chrome (および Safari) 内で次のようなエラーが発生します。
XMLHttpRequest cannot load http://api.mydomain.net/v1/foos/00000d/bars/000014/boots Origin http://localhost:3501 is not allowed by Access-Control-Allow-Origin.
わかりました、私が考えたCORSの問題は、私のAPIを非難しました。次に、CURL 経由でこのリソースをリクエストしました。
curl -i -H'Accept: application/json' -H'X-Auth-Token: pAWp5hrCmXA83GgFzgHC' -XOPTIONS 'http://api.mydomain.net/v1/foos/00000d/bars/000014/boots'
HTTP/1.1 200 OK
Status: 200
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Auth-Token
Content-Length: 0
よさそうだ、今GET:
curl -i -H'Accept: application/json' -H'X-Auth-Token: pAWp5hrCmXA83GgFzgHC' -XGET 'http://api.mydomain.net/v1/foos/00000d/bars/000014/boots'
HTTP/1.1 204 No Content
Status: 204
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/plain
少なくとも 1 つのオブジェクトを含むブーツ コレクションをリクエストすると、すべて正常に機能します。サーバーが arr で応答する CORS ヘッダーは、私が思うにまったく問題ありません。では、なぜブラウザーはクロス オリジン リソースの問題を報告するのでしょうか?
text/plain
204 応答のコンテンツ タイプが原因ですか?