jQuery1.9.1
リクエストは送信されず、エラーが発生したようです。console.log
出力はRequest failed: error
、これをさらにデバッグする方法がわからないことを示しています。
$.ajax({
beforeSend: function (xhr) { xhr.setRequestHeader ('Authorization', 'Token c576f0136149a2e2d9127b3901015545') },
type: "GET",
url: "https://example.com/endpoint",
dataType: "json"
}).done(function( msg ) {
console.log( msg );
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log( "Request failed: " + textStatus );
console.log( errorThrown );
});
Google Chrome ショーでのネットワーク トラフィックの検査
Method: OPTIONS
Status: (canceled)
Type: Pending
ただし、curl を使用すると問題なく動作します。
curl https://example.com/endpoint -H 'Authorization: Token token="c576f0136149a2e2d9127b3901015545"'
これが jsFiddle です: http://jsfiddle.net/2vtyD/1/
注:このAccess-Control-Allow-Origin
部分が機能しているため、これは問題ではありません。
私は何かが欠けているに違いないことを知っています...
アップデート:
に切り替えると、すべて正常に動作しhttp
ます。使用時のみこhttps
の問題が発生します。自己署名証明書を使用している(無効)ためではないかと思いました。しかし、他の SSL リクエスト (非認証、つまり 'OPTIONS' ではない) は正常に機能します。そのため、SSL と OPTIONS リクエストの組み合わせにすぎないようです。クロムのステータスはキャンセルされており、サーバーログを見るとApacheログにいくつかのアクティビティが表示されますが、レールWebアプリにはなりません。
Apache ログのスニペットを次に示します。
[info] [client 10.0.2.2] (70007)The timeout specified has expired: SSL input filter read failed.
[info] [client 10.0.2.2] Connection closed to child 10 with standard shutdown (server example.com:443)
[info] [client 10.0.2.2] Connection to child 11 established (server example.com:443)
[info] Seeding PRNG with 656 bytes of entropy
[info] [client 10.0.2.2] (70014)End of file found: SSL input filter read failed.
[info] [client 10.0.2.2] Connection closed to child 11 with standard shutdown (server example.com:443)
ただし、これらのタイプのメッセージはすべての SSL 要求で発生しています。だから私は基本的にどのように進めるか途方に暮れています。