jQuery 1.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 );
});
检查谷歌浏览器显示的网络流量
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 请求的组合。chrome 中的状态表示已取消,并且通过查看服务器日志 apache 日志显示了一些活动,但它从未使其成为 rails 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 请求都会出现这些类型的消息。所以我基本上不知道如何进行。