所谓的自定义头部,在实际的项目里,我们经常会遇到需要在头部加上一些token或者其他的用户信息,用来做用户信息的校验。
2:发生了跨域。
请求有什么作用
官方将头部带自定义信息的请求方式称为带预检()的跨域请求。在实际调用接口之前,会首先发出一个请求,检测服务端是否支持真实的请求进行跨域的请求。真实请求在请求中,通过-将 ---与---发送给后台,另外浏览器会自行加上一个请求地址。服务端在接收到预检请求后,根据资源权限配置,在-头部加入--allow-(允许跨域请求的请求头)、--allow-(允许跨域请求的请求方式)、--allow-(允许跨域请求的域)。另外,服务端还可以通过--Max-Age来设置一定时间内无须再进行预检请求,直接用之前的预检请求的协商结果即可。浏览器再根据服务端返回的信息,进行决定是否再进行真实的跨域请求。这个过程对于用户来说,也是透明的。
另外在HTTP响应头,凡是浏览器请求中携带了身份信息,而响应头中没有返回--Allow-: true的,浏览器都会忽略此次响应。
总结:
只要是带自定义的跨域请求,在发送真实请求前都会先发送请求,浏览器根据请求返回的结果来决定是否继续发送真实的请求进行跨域资源访问。所以复杂请求肯定会两次请求服务端。
请求如何避免
其实通过以上的分析,我们能得出以下解决方案:
1:使用代理,避开跨域。
2:将复杂跨域请求更改为简单跨域请求。
3:不使用带自定义配置的header头部。
声明:
1、本站发布的内容部分购买于网络,仅供读者学习与参考,如有侵权,请联系站长进行删除处理。
2、本站一切资源不代表本站立场,不代表本站赞同其观点和对其真实性负责。
3、本站仅分享资源,以极低的价格降低大家被割韭菜的损失。本站无法保证资源质量,所以介意的小伙伴请勿下单!
4、资源大多存储在云盘,如发现链接失效,请联系站长第一时间更新。