我试图发送简单的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中,它显示OPTIONS资源无法加载到网络检查器中,应用服务器没有获得任何请求.我试过jQuery 1.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”}.所有其他标题名称/值都会在Google Chrome中发生错误,但在上述所有浏览器中都可以使用.
为什么Google Chrome浏览器无法处理CORS请求中的标题?
解决方法
这是Google Chrome中的错误:
http://code.google.com/p/chromium/issues/detail?id=96007.