ngnix配置跨域请求问题

1.问题

今天在尝试写一个html代码(抄csdn的)请求我自己的valorant api的时候,遇到了下面的问题。

1
CORS头缺少 'Access-Control-Allow-Origin'

image-20230213075822725

百度了一下,大概的意思就是,当前我的api服务器不支持跨域请求。

此时请求其实已经完成了(后端日志显示已经返回了结果)在返回到浏览器的时候,浏览器检查了后端的设置,发现后端不允许跨域请求,所以屏蔽了我们的访问

2.解决

需要配置的是nginx,在转发规则里面添加下面的内容

1
2
3
4
5
6
7
8
9
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

if ($request_method = 'OPTIONS') {
return 204;
}
}

现在就OK了,请求成功

请忽略我这烂的很的前端页面。

3.参考

Nginx配置跨域请求 Access-Control-Allow-Origin *_nginx access-control-allow-origin 多域名-CSDN博客