IIS7.5 でホストされている WCF サービス エンドポイントに対して CORS 呼び出しを実行しようとしています。
IIS でカスタム ヘッダーを構成しました。私の設定は以下のようになります
<customHeaders>
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="x-user-session,origin, content-type, accept" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
POST リクエストを実行すると、「リクエスト ヘッダー フィールド x-user-session は Access-Control-Allow-Headers によって許可されていません」というエラー メッセージが表示されます。
呼び出しからカスタム ヘッダーを削除して実行すると、すべて正常に動作します。
また、カスタム ヘッダーを使用して GET 呼び出しを行うと、API も正しく動作します。
$.ajax({
type:"POST",
success: function(d) { console.log(d) },
timeout: 9000,
url: "http://api.myserver.com/Services/v2/CreditCard.svc/update_cc_detail",
data: JSON.stringify({"card_id": 1234,"expire_month":"11","expire_year":"2020","full_name":"Demo Account", "number":"4111111111111111","is_primary":true}),
xhrFields: { withCredentials: true},
headers: { x-user-session': "B23680D0B8CB5AFED9F624271F1DFAE5052085755AEDDEFDA3834EF16115BCDDC6319BD79FDCCB1E199BB6CC4D0C6FBC9F30242A723BA9C0DFB8BCA3F31F4C7302B1A37EE0A20C42E8AFD45FAB85282FCB62C0B4EC62329BD8573FEBAEBC6E8269FFBF57C7D57E6EF880E396F266E7AD841797792619AD3F1C27A5AE" },
crossDomain: true,
contentType: 'application/json'
});
アップデート
以下は、FireBug ログへのリンクです https://gist.github.com/anonymous/7333130