response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST,GET");
response.setHeader("Access-Control-Allow-Headers", "Authentication,Content-Type");
if($request_method != (POST|GET|HEAD)){
return 403;
}
response.setHeader("Access-Control-Allow-Origin", "a.mycompony1.com");
response.setHeader("Access-Control-Allow-Methods", "POST,GET");
如果前端请求用PUT方式或者跨域域名为b.mycompony.com,后端返回200状态码,但是实际是不允许跨域的。错误以XHR对象的onError事件表现出来,需要前端用户手动处理。如果允许访问,则进行第二次类似简单请求的请求
OPTIONS /getListCORS HTTP/1.1
Origin: http://b.mycompony.com
Access-Control-Request-Method: PUT
总结:我们的403报错是因为nginx不支持OPTION请求方式的访问,删除访问限制后可正常进行
参考文档:
阮一峰的blo
MDN开发者文档
原文:https://www.cnblogs.com/boboshenqi/p/10524606.html