2016-04-23 16 views
0

2つのドメイン間で簡単なjQueryのAjaxを動作させるのに苦労しています。CORSが動作していないJqueryのAjax

サイトAでAjaxを実行しようとすると、開発者ツールのネットワークセクションで、サイトBに関連するGETメソッドで「404が見つかりません」というメッセージが表示されます。 コンソールにもこのメッセージが表示されます。行方不明CORSヘッダー 'アクセス制御 - 許可 - 起源'」

で "サイトA" 私はこのている:

<script> 
    var xhr = new XMLHttpRequest(); 
    xhr.open("get", "http://domainB.com/resource.php", true); 
    xhr.onload = function() { 
     console.log('Connected!'); 
    }; 
    xhr.send(null); 

    $.ajax({ 
     url: 'http://domainB.com/resource.php', 
    }).done(function ($result) { 
     //somecode 
    }); 
</script> 

とリソースのサーバーで

<?php  
    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Methods: GET, POST'); 
    header("Access-Control-Allow-Headers: X-Requested-With"); 
    //somecode 
( "サイトB")

これは私の初めてのCORSであり、何が間違っているのか分かりません。 http://www.html5rocks.com/en/tutorials/cors/

+0

それがMozillaのFirefoxのaddons.mozilla.org/pl/firefox/addon/cors-everywhereでどこでもCORSアドオンとしてちょっとしたトリックがあるが、これは一時的な解決策である – Grisza

答えて

0

ありがとう最後に、私はこの記事で答えを得ました。 問題は私のAjaxコードにあったようですが、いくつかのプロパティを追加したばかりで、今は完全に動作しています。 これは私のアヤックスは今どのように見えるかです:

 $.ajax({ 
      type: 'GET', 
      url: url, 
      cache: false, 
      contentType: 'text/plain', 
      xhrFields: { 
       withCredentials: false 
      }, 
     }).done(function ($result) { 
      //somecode 
     }); 
0

は、PHPページの先頭にこのコードを追加

http://domainB.com/resource.php

header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Allow-Credentials: true "); 
header("Access-Control-Allow-Methods: OPTIONS, GET, POST"); 
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File- Size, 
X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control"); 
+0

did not work、あなたのコードでdomainB.com/request.phpでこのエラーが発生しました: "警告:ヘッダーには1つ以上のヘッダーが含まれていない可能性があります。新しい行はhttp://domainB.com/resource.phpで検出されました「7行目」にあり、domainAコンソールでこのエラーが発生しています。「クロスオリジン要求がブロックされました:同じオリジンポリシーで、リモートリソースをhttp://domainB.com/resource.phpで読むことができません(理由: CORSヘッダー 'Access-Control-Allow-Origin'がありません)。 " –

関連する問題