承認にセッションキーを使用する外部アプリケーションサーバーに単純なCORSリクエストを送信しようとしています。
$.ajax({
type: "GET",
url: "https://192.168.1.72:8442/api/file/",
headers: {"Authorization": "3238562439e44fcab4036a24a1e6b0fb"}
});
Firefox 18、Opera 12.12、およびRekonq 2.0(WebKitも使用)では正常に動作しますが、Google Chrome(バージョン21および24を試してみました)では動作しません。Google Chromeでは、オプションリソースをネットワークインスペクターに読み込めず、アプリケーションサーバーがリクエストを受け取らないことが示されています。jQuery1.8.3と1.9.0を試しました。
Request URL:https://192.168.1.72:8442/api/file/
Request Headers
Access-Control-Request-Headers:accept, authorization, origin
Access-Control-Request-Method:GET
Cache-Control:no-cache
Origin:https://192.168.1.72:8480
Pragma:no-cache
リクエストからヘッダーを削除すると、Google Chromeでも401を受け取り、アプリケーションサーバーで認証が無効になっている場合にリソースにアクセスできます。どのヘッダーが送信されるかは関係ありません。送信できるヘッダーは{"Content-Type": "plain/text"}のみです。他のすべてのヘッダー名/値はGoogleChromeでエラーになりますが、上記のすべてのブラウザーで機能します。
Google ChromeがCORSリクエストのヘッダーを処理しないのはなぜですか?