要在 Nginx 中配置跨域,可以使用 add_header 指令来添加 Access-Control-Allow-* 头信息,如下所示:
location /api {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With';
add_header 'Access-Control-Max-Age' 86400;
add_header 'Content-Length' 0;
return 204;
}
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE';
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With';
proxy_pass http://backend;
}
以上配置中,我们在 /api 路径下配置了跨域。其中,如果请求方法为 OPTIONS,则添加相应的头信息后直接返回 204,否则添加常规的跨域头信息并转发请求到后端服务。
具体来说,我们添加了以下几个头信息:
- Access-Control-Allow-Origin:允许的跨域来源,这里设置为 * 表示允许任何来源。
- Access-Control-Allow-Methods:允许的请求方法,这里设置为 GET, POST, PUT, DELETE, OPTIONS。
- Access-Control-Allow-Headers:允许的请求头,这里设置了 Authorization, Content-Type, X-Requested-With。
- Access-Control-Max-Age:预检请求的有效期,这里设置为 86400 秒。
注意,由于浏览器会先发送一个预检请求(OPTIONS 请求),所以我们需要针对这种情况单独处理,否则浏览器会报错。
您的点赞、关注是我更新的最大动力,感谢
本文暂时没有评论,来添加一个吧(●'◡'●)