nginx add_header能否覆盖实际服务端的header?

image.png
说一下我的场景,因为某图片服务器设置了只允许A域名跨域访问,而我的页面B想跨域访问这个图片服务器就不被允许了,想到用nginx来配置转发这个图片服务器的文件,结果转发配置的时候: 设置add_header 允许 B域名跨域,结果是B和A同时存在,浏览器不允许。

作为中间的nginx有啥方法可以覆盖目标服务器Access-Control-Allow-Origin配置呢?


updated:

感谢关注和提点,已找到proxy_hide_header解决问题

阅读 8.9k
1 个回答

你可以反代的配置里忽略一下上游的这个头试一下:

proxy_pass_header Access-Control-Allow-Origin;

P.S. 为啥你反代配置 CORS 的时候要把 OPTIONS 请求也转发给 A 啊?B 完全可以写个 if 判断一下,如果是 OPTIONS 就直接返回相应的这几个 Access-Control-Allow-XXX 头就好了啊,何必又转给 A 呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏