我想使用jquery
ajax访问从https://A/到https://B/的跨域。
我的请求标头如下:
Access-Control-Request-Headers: authorization
Access-Control-Request-Method: GET
Origin: https://A
Referer: https://A/test/index.html
实际上,在服务器端设置了所有必需的标头:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,C$
Access-Control-Allow-Methods: GET,POST,OPTIONS,DELETE,PUT,PROPFIND,PROPPATCH,NOTIMPLEMENTED,OPTIONS,UNLOCK,MKCOL,COPY,LOCK,MOVE,HEAD
Access-Control-Allow-Origin: https://A
Access-Control-Max-Age: 1728000
但是我的Google Chrome浏览器仍然只发送过时的预检标头,而不发送真实的标头,因此我一直收到401错误。我有想念吗?
更新: Chrome显示以下错误消息:
对预检请求的响应未通过访问控制检查: 没有HTTP正常状态。
答案 0 :(得分:0)
好的,我有一种解决方法。我在请求的文档中添加了以下PHP代码。
if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
http_response_code(200);
exit;
}
但是我仍然愿意寻求更好的解决方案。