解决跨域引起的两次请求问题

  1. 在前后端分离的项目中,每次前端向发起请求都会有两条相同的请求,第一条请求为options,第二条才是method中的get,post或者put等,并且第一条无任何数据返回,第二条才正常返回数据。

    这是由于Web服务器在处理跨域访问引起的,options其实是一种预检请求,浏览器在处理跨域问题是会先辨别发送的请求是否为复杂请求,如果是则会先向服务器发送一条预检请求,再根据服务器的返回内容由浏览器判断服务器是否允许此次请求,如果服务器是使用cors的方式来支持跨域访问的,那么预检行为是必不可少的。

    如果要避免预检行为的发生,可以在发送了一个请求之后设置一个预检有效期,在有效期内对该浏览器发送请求不再重复预检,设置Access-Control-Max-Age这个参数即可达到预期目标,该参数用来指定本次预检请求的有效期,单位为秒,需要在服务器上设置该参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值