已设Access-Control-Allow-Origin,AJAX请求仍报跨域问题的解决

2023-05-26 23:26:46
黄豆 UsualTool.com
编程思维/其他 2970
loading
Ajax请求跨域问题比较常见,对于接口服务器来讲,一般设置Access-Control-Allow-Origin:*便能解决。
但对于Preflighted Request(带预检的跨域请求)来讲,光设置Access-Control-Allow-Origin:*不够。那么什么情况下会涉及到带预检的跨域请求呢?
设置了自定义header字段的请求,便会涉及到Preflighted Request。
此时,如果仅仅是接口端设置Access-Control-Allow-Origin:*,仍然会报跨域错误。那么该怎么解决呢?
以Nginx服务器为例:
location /{}中添加OPTIONS配置即可,代码如下:

if ($request_method = 'OPTIONS') { 

 add_header 'Access-Control-Allow-Origin' '*'; 

 add_header 'Access-Control-Allow-Methods' 'OPTIONS'; 

 add_header 'Access-Control-Allow-Headers' 'time,token,secret'; //此处是自定义请求头列表 

 return 200; 

 }


希望该经验对你有所帮助。
+分享给朋友+
郑重提醒:部分素材来源于互联网,如果侵犯了您的权利,请及时联络我们更正,谢谢合作,电邮:usualtool@qq.com