参考博客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; }}