2011-12-30 11 views
6

クロスドメインの問題を調査中ですが、いくつかのRESTサービスコールがあります。 Chromeは、この言った: リクエストヘッダフィールドX-要求-では、アクセス制御 - 許可 - ヘッダによって許可されていない これは私がネットワークから持っているものである - >ヘッダー]タブ:クロスドメインAJAX RESTサービスHTTPヘッダー

Request URL: rest_url_on_other_domain 
Request Method:OPTIONS 
Status Code:200 OK 
Request Headers: 
Access-Control-Request-Headers:Origin, x-requested-with, content-type, accept 
Access-Control-Request-Method:POST 
Origin:http://localhost:8080 

Response Headers 
Access-Control-Allow-Headers:Content-Type, Accept 
Access-Control-Allow-Methods:GET, POST 
Access-Control-Allow-Origin:* 
Access-Control-Max-Age:1728000 
Cache-Control:no-cache, no-store 
Connection:keep-alive 
Content-Length:0 
Date:Fri, 30 Dec 2011 11:29:12 GMT 
Expires:-1 
Pragma:no-cache 
Server:nginx/1.0.2 

でした誰かがこのHTTPヘッダーについて説明しますか?何が問題なのですか?一部のヘッダーでサーバーのチェックが失敗しているか、クライアント側(ブラウザー)でいくつかのヘッダーのチェックが失敗しています。このアクセスヘッダーについての考え方は何ですか?簡単な言葉で詳細に説明するだけで、残りの気持ちを自分自身で学ぶことができます。前もって感謝します!

答えて

11

あなたが見ているのは、クロスソースリソース共有プリフライトリクエストです。そのようなリクエストのリクエスト方法はOPTIONSです。これは、ブラウザが実際の要求を送信するための許可を求めるために使用する要求です。 http://www.html5rocks.com/en/tutorials/cors/

この特定のケースでは、ブラウザはヘッダの束(Access-Control-Request-Headersヘッダー内)を要求しています。これに応じて、Access-Control-Allow-Headersヘッダーには、要求されたすべてのヘッダーが含まれている必要があります。要求されたヘッダー以上のものがある場合、ブラウザーは例外をスローしません。この例では、レスポンスヘッダーは次のようになります。

Access-Control-Allow-Headers: Origin, x-requested-with, content-type, accept 

他のすべての応答ヘッダーはokです。サーバーがこの応答を送信すると、ブラウザーはデータの実際の要求である第2の要求を送信します。

+1

しかし、リクエストをプリフライトするためのアイデアは何ですか?これらのヘッダーに対してどのような情報が得られますか。会話は次のようなものです:プリフライトリクエスト(Origin Header- "あなたはどのドメインをサポートしていますか?"、x-requested- with "XMLHttpRequestsをサポートしていますか?"など)、プリフライトレスポンスで繰り返されるすべての人にそのようなアナロジーを持たせるのは悪いことです。そして、ブラウザが実際の要求を送信するとき - いつどの条件が満たされるか(mbの簡単な例)。ありがとうございました! – EnTrERy

+1

プリフライトではブラウザから次のような質問があります: "こんにちはサーバー!このドメインからこのHTTPメソッドを使用してリクエストがあり、リクエストヘッダーがあります。次に、サーバーは、Access-Control-Allow- *ヘッダーを送り返してプリフライト要求を確認します。単純なOKではなくこれらのヘッダーを使用する理由は、最初の要求後にプリフライト応答をキャッシュできることです。このように、すべての要求に対してプリフライトを発行する必要はなく、帯域幅を節約できます。 – monsur

+1

詳細な説明をありがとうございます! – EnTrERy

関連する問題