遇到一个项目,产生了跨域问题,因为这种问题很好解决,只要在 nginx 上面配置允许跨域即可,但是却遇到了 add_header 不生效的问题。
nginx 配置如下
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods PUT,POST,GET,DELETE,OPTIONS;
用 curl 发送请求,发现返回没有 Access-Control-Allow-Origin: *
后端返回状态码 415,这个状态码属于是 hearder 头问题,属于前后端交互问题,暂时不管。
后经查阅资料发现,Nginx add_header 只对 200,201,204,206,301,302,303,304,307 这些状态码生效,对于 401 405 403 这些状态码是不生效的。
解决办法:
add_header Access-Control-Allow-Origin * always;
添加: always
参数没有生效的原因就是因为状态码是 415 导致 Nginx 没有添加跨域参数,加上 always 参数后,无论状态码如何都会生效.
问题解决.