2016-09-24 5 views
1

最初のAjaxリクエストはレスポンスを受信しますが、ヘッダーを含む2番目のレスポンスは受信しません。クロスドメインのAjaxリクエストにヘッダーを含める方法を教えてください。クロスドメインのAjaxリクエストでヘッダーを許可する

注 - 私はサーバ側の変更を行う必要があると思いますが、https://stackoverflow.com/a/32140436/1032531もそのように言いますが、変更の方法は述べていません。また、私はjQueryの唯一のソリューションを探していません。二Ajaxリクエストへ

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
     <title>Testing</title> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
      $(function(){ 
       $.ajax({ 
        type:'POST', 
        url:'http://otherdomain.example.com/ajax.php', 
       }) 
       $.ajax({ 
        type:'POST', 
        url:'http://otherdomain.example.com/ajax.php', 
        headers: {"X-Test-Header": "test-value"}, 
       }) 
      }); 
     </script> 
    </head> 

    <body></body> 
</html> 

FFの応答:ブロックされた

クロスオリジン・リクエスト:同一生成元ポリシーがhttp://otherdomain.example.com/ajax.phpで リモートリソースを読ん禁止します。 (理由:CORSヘッダーの「x-test-header」がCORSプリフライトチャンネルの「Access-Control-Allow-Headers」にありません)。

のXMLHttpRequestをロードすることはできませんhttp://otherdomain.example.com/ajax.php

は、Chromeは二通りに応答します。 要求ヘッダーフィールドX-Test-Headerが許可されていません プリフライト応答のAccess-Control-Allow-Headers。 Apacheのは

ように設定されている、次のとおりです。

Header set Access-Control-Allow-Origin "*" 
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" 
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization, Client-Security-Token, Accept-Encoding" 

答えて

2

の上部に

<?php header("Access-Control-Allow-Origin: *"); ?> 

を使用することができます各ヘッダを明示的に記載されている必要があり、私はAccess-Control-Allow-Headersx-test-headerを追加したようです。

Header set Access-Control-Allow-Origin "*" 
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" 
Header set Access-Control-Allow-Headers "x-test-header, Origin, X-Requested-With, Content-Type, Accept" 
0

あなたは.htaccessのルールを使用してこのエラーを取り除くことができます。ただ、これは世界的にクロスorginが可能になります

Header set Access-Control-Allow-Origin "*" 

ホームディレクトリfile.on .htaccessを作成(またはすでにアカウントをお持ちの場合は、それにこれらの行を追加してください)。あなたは1ページのみのためにしたい場合は、ページ

+0

ありがとう、私の元の投稿に見られるように、私は既にそうしていました。それは通過しないヘッダーです。 – user1032531

関連する問題