nginx跨域之add_header说明

本文介绍了解决前端JS跨域访问问题的一种方法:利用Nginx作为代理服务器,并详细解释了如何通过Nginx配置文件中的add_header指令来添加CORS跨域配置项,确保所有HTTP响应都包含必要的跨域头信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于浏览器的安全限制,前端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官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值