官方文档地址:http://nginx.org/en/docs/http/ngx_http_headers_module.html

参考nginx官方文档,添加相应头的方法如下:

举例:在conf文件的server浸染域中添加如下相应头:

phppost添加headernginx addheader应用总结 NoSQL

server { listen 80; # 其他配置... # 许可跨域 add_header Access-Control-Allow-Origin ; add_header Access-Control-Allow-Methods 'GET, POST'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';# 其他配置...}

保存配置,重启nginx做事器,考试测验跨域要求nginx目录下的json文件,相应成功。

碰着的坑:反向代理要求报错

由于是在nginx server浸染域下设置add_header,会对nginx反向代理的php/tomcat要求生效。

如果php代码中设置了header('Access-Control-Allow-Origin: ');add_header不会覆盖而是追加,相应头会涌现Access-Control-Allow-Origin多个定义缺点。

办理方法:

在nginx location浸染域中设置add_header。
一样平常跨域要求的都是json文件,仅对json文件生效即可。

location ~ .\.(json)?$ { add_header Access-Control-Allow-Origin ; add_header Access-Control-Allow-Methods 'GET, POST'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; }add_header总结add_header 指令用于添加相应头字段,当且仅当状态码为200, 201, 204, 206, 301, 302, 303, 304, 307, 308有效。
add_header在其他状态码下也生效,可以加上always,add_header name value always。
当前浸染域(http、server、location、location的if)没有设置add_header的话,会继续外层浸染域的add_header设置。