jQuery v1.8.3 を使用して、クロスドメイン GET ajax リクエストを実行したいと考えています。
これが私のセットアップです:
各リクエストに対して
domain1.dev
これらの CORS ヘッダーを発行するサーバーがあります。Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: *
Access-Control-Allow-Headers: *
と呼ばれる
domain2.dev
からjavascriptをロードするWebアプリケーションがあります。domain1.dev
domain1.js
この
domain1.js
ファイルでは、次の AJAX リクエストを発行します。jQuery.ajax('http://domain1.dev/path', { headers: {'Accept': 'application/json'}, xhrFields: { withCredentials: true }, statusCode: { 200: function(data, textStatus, jqXHR) { // some logic }, 401: function(data, textStatus, jqXHR) { // some other logic } } })
からページを読み込みます
domain2.dev
。AJAX リクエストが (プリフライトなしで) 発行され、成功しました (ステータス コード 200)。
何か案が?
編集:
によって送信される応答ヘッダーdomain1.dev
:
Access-Control-Allow-Cred... true
Access-Control-Allow-Head... Accept, Accept-Encoding, Accept-Language, Connection, Cookie, Host, Origin, Referer, User-Agent
Access-Control-Allow-Meth... GET
Access-Control-Allow-Orig... *
Cache-Control private
Connection keep-alive
Content-Type application/json
Date Thu, 22 Nov 2012 22:24:44 GMT
Server nginx/1.2.3
Transfer-Encoding chunked
X-Powered-By PHP/5.4.6
x-debug-token 50aea62c91ee6
リクエストヘッダーは次のとおりでした:
Accept application/json
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Cookie obfuscated=uk40mmmqbffues5cpn6omj6mf0; __utma=126865951.1486960365.1353615466.1353615466.1353619027.2; __utmz=126865951.1353615466.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=126865951
Host domain1.dev:8080
Origin http://domain2.dev:8080
Referer http://domain2.dev:8080/app_dev.php
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/17.0 Firefox/17.0