参考博客https://blog.csdn.net/agonie201218/article/details/112562252,https://blog.csdn.net/Zisson_no_error/article/details/119357629。都是写得非常很好的文章
重中之重:一定要长眼睛,带脑子
通过跨域访问的报错,看清楚到底是什么问题。例如
- response没有通过:就是没设置Access-Control
- Access-Orgin有multiple
- request没有对应字段…
等等问题,一定要仔细看
总结模版
多尝试,因人而异
我这里发现所有的add_header必须都写到if请求中,写在if外面没用
server {
listen 22222;
server_name 121.36.33.243;
location / {
# 我遇到的情况是,只有OPTIONS需要设置Allow-Origin ,其他的不需要
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin 'http://127.0.0.1:5050';
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Headers 'content-type';
add_header Access-Control-Allow-Methods '*';
add_header Access-Control-Allow-Credentials 'true';
return 204;
}
if ($request_method = 'POST') {
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Headers 'content-type';
add_header Access-Control-Allow-Methods '*';
add_header Access-Control-Allow-Credentials 'true';
}
proxy_pass http://127.0.0.1:5000;
}
}