2

XHR リクエストを実行しようとすると、次のエラーが発生します。CORS 応答ヘッダーをセットアップしましたが、明らかに何か問題があります。誰でもエラーを見つけることができますか?

XMLHttpRequest はhttp://domain.dev/pathを読み込めません。Origin http://mobile.devは Access-Control-Allow-Origin で許可されていません。

プリフライト リクエスト ヘッダー (OPTIONS)

これは、リクエストを確認するためのプリフライト リクエストです。

Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:origin, x-pre-process, x-requested-with, x-client, x-client-version, accept, x-session
Access-Control-Request-Method:GET
Cache-Control:max-age=0
Connection:keep-alive
Host:my-app.dev
Origin:http://mobile.dev
Pragma:no-cache
Referer:http://mobile.dev/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1211.0 Safari/537.2

応答ヘッダー

これは、プリフライト リクエストに対するサーバーの応答です。

Access-Control-Allow-Headers:origin, x-pre-process, x-requested-with, x-client, x-client-version, accept, x-session
Access-Control-Allow-Methods:GET, POST, PUT, PATCH, DELETE
Access-Control-Allow-Origin:http://mobile.dev
Access-Control-Max-Age:3600
Cache-Control:max-age=0, private, must-revalidate
Connection:close
Content-Type:text/html; charset=utf-8
ETag:"7215ee9c7d9dc229d2921a40e899ec5f"
X-Request-Id:3fca5f24077bcbd1351d552edf311f82
X-Runtime:0.014551

実際のリクエスト ヘッダー

これが実際のリクエストで、上記のエラーによりブラウザによってキャンセルされます。

Accept:application/json, text/javascript, */*; q=0.01
Cache-Control:no-cache
Origin:http://mobile.dev
Pragma:no-cache
Referer:http://mobile.dev/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1211.0 Safari/537.2
X-Client:mobile
X-Client-Version:1.6
X-Pre-Process:underscore
X-Requested-With:XMLHttpRequest
X-Session:j9y01yw33txmdbcz1ao258uy7bzjlm
4

1 に答える 1

2

飛行前の OPTIONS リクエストを適切に処理する必要があるようですが、クロスサイト リソース リクエストが機能するには十分ではありません。

OPTIONS リクエストが満足のいくヘッダーで戻ってきた後、同じ URL への後続のリクエストに対するすべてのレスポンスにも、必要な「Access-Control-Allow-Origin」ヘッダーが必要です。デバッガー ウィンドウに表示されます。

そのため、OPTIONS 応答に何らかの問題があるためにブラウザがリクエストをキャンセルしたように見えますが、実際には、ブラウザは実際のリクエストからのレスポンス ヘッダーを見て、それらを拒否しています。

(私自身の同様の質問からコピーされた回答Access-Control-Allow-Origin ヘッダーが機能しない -同じことの場合に備えて、何が間違っているのですか? )

于 2012-08-14T11:48:36.863 に答える