我试图将简单的CORS请求发送到使用会话密钥进行授权的外部应用程序服务器
$.ajax({
键入:“获取”,
url:“https://192.168.1.72:8442/api/file/",
标题:{“授权”:“3238562439e44fcab4036a24a1e6b0fb”}
});
它在Firefox 18、Opera 12.12和Rekonq 2.0(也使用WebKit)中运行良好,但在Google Chrome(试用版21和24)中不起作用。在Google Chrome中,它显示选项资源在网络检查器中加载失败,应用程序服务器未收到任何请求。我试过jQuery 1.8.3和1.9.0
请求URL:https://192.168.1.72:8442/api/file/
请求头
访问控制请求头:接受、授权、来源
访问控制请求方法:GET
缓存控制:没有缓存
来源:https://192.168.1.72:8480
Pragma:没有缓存
如果我从请求中删除标题,那么我也会在Google Chrome中收到401,并且它能够在应用服务器上禁用授权的情况下访问资源。发送哪些标头并不重要。我能发送的唯一标题是{“内容类型”:“纯/文本”}。所有其他标题名称/值在Google Chrome中都会出现错误,但在我上面提到的所有浏览器中都可以使用
为什么Google Chrome不处理CORS请求中的标题
这是Google Chrome中的一个bug:http://code.google.com/p/chromium/issues/detail?id=96007.