nginx跨域之add_header说明
由于浏览器的安全限制,前端js代码无法直接访问不同域下的资源。只要协议、域名、端口有任何一个不同,都被当作是不同的域。
跨域的解决方案有很多,目前常用的方案是通过nginx代理服务器给返回的响应头添加cors跨域配置项来解决。
在此对nginx配置add_header进行说明:
格式:add_header name value [always];
name是添加的头名称,value是对应的值,always可选(下面会详细说明)
在不添加always的情况下,add_header只对响应码为200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13), 308 (1.13.0)这些生效(括号内是nginx版本)。也就是说当服务端返回响应异常,响应码不是上述之一的话,即使nginx有配跨域头信息,浏览器仍然会显示跨域错误。原因就是因为nginx对异常响应码添加add_header无效。
实际工作中往往前端需要捕获服务端异常响应,这时在nginx跨域add_header上加上always,使nginx对任何响应码生效。
具体请参考nginx官方文档。
更多相关技术文章,请访问PHP中文网!