前两天一个同事过来找我,前端跨域的问题。而我这里后端已经给它加上了需要的响应头了,但还是不行,使用postman发现,代理的头中已经支持了跨域,而proxy_pass 里面添加了access_by_lua_file阶段又给加了一层,而最终变成了这样的结果,而导致前端还是报跨域
解决方法很简单,就是在后端代理中,不添加额外的响应头,但还是有几个疑虑的点需要深挖一下
- access_by_lua_file阶段添加的响应头不能覆盖,而变成了额外的键值对添加,当然nginx 代理的一些另外添加响应头的方法:
add_header
也类似 - http 响应头不是字典的保存形式,而可以有重复key,为什么需要这么设计
第一个问题:
就是会有多个头,相同key的响应头的时候,前端收到会以列表的形式收到
第二个问题:
HTTP RFC2616,相同头将拼接成 ,
的形式