カスタムヘッダーのない単純なGETリクエスト。応答は期待どおりに返されます。本文のデータにはアクセスできますが、ヘッダーにはアクセスできません。
「etag」ヘッダーにアクセスしようとすると、ブラウザで例外が発生します。
安全でないヘッダー「etag」の取得を拒否しました
Chrome、Safari、Firefoxはすべて同じように動作します。 IEではテストしませんでした。
ここで何が欠けていますか?
CORSを使用する場合は、単純な応答ヘッダーのみが公開されます。単純な応答ヘッダーが定義されています here 。 ETag
は単純な応答ヘッダーではありません。単純でないヘッダーを公開する場合は、Access-Control-Expose-Headers
ヘッダー、次のように:
Access-Control-Expose-Headers: ETag
ただし、Chrome、Safari、Firefoxには、単純でないヘッダーが正しく公開されないバグがあります。これは今では修正されているかもしれませんが、よくわかりません。
プリフライトは、GET/POST以外のhttpメソッドまたは非シンプルrequestヘッダー(およびresponseヘッダーについて尋ねています。
AJAX 2.0(クロスドメイン共有)は、W3Cによって最近発表された方法論です。 http://www.w3.org/TR/XMLHttpRequest2/#ref -cors
また、これを行う別の方法があります。これはJSON-Pと呼ばれ、JSONリクエストのようなものですが、クロスドメインに使用できます。 http://en.wikipedia.org/wiki/JSONP
どちらも、正しくセットアップされていないと、サイト所有者にとって非常に危険です。そのため、使用する際は注意してください。
[PS]これが役立つかどうかわからない: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html