跨域访问及Nginx解决跨域访问

本文介绍了浏览器安全的核心——同源策略,解释了其重要性和限制条件,并探讨了如何使用Nginx解决跨域请求问题。

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

同源策略(Sameorigin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

同源策略是处于对用户安全的考虑,如果非同源就会受到以下限制:

  • Cookie不能读取
  • Dom无法获得
  • Ajax请求不能发送

但是事实是经常需要借助非同源来提供数据,所以就需要进行跨域请求。所谓同源是指,域名,协议,端口相同。当浏览器运行一个JS脚本时会进行同源检测,如果不同源是不能执行的。

通过Nginx处理跨域请求问题

users节点这么干主要是为了解决如下问题:

对于简单请求,如GET,只需要在HTTP Response后添加Access-Control-Allow-Origin。

对于非简单请求,比如POST、PUT、DELETE等,浏览器会分两次应答。第一次preflight(method: OPTIONS),主要验证来源是否合法,并返回允许的Header等。第二次才是真正的HTTP应答。所以服务器必须处理OPTIONS应答。

再第一次preflight后会重定向请求(HTTP 301),并且数据丢失,post变成get。

利用nginx的反向代理,这样发出的请求就是与当前页同源。

参考链接:

HTTP访问控制:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS#Access-Control-Allow-Origin

https://segmentfault.com/a/1190000007276212

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值