最初の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"
ありがとう、私の元の投稿に見られるように、私は既にそうしていました。それは通過しないヘッダーです。 – user1032531