最近在用vue写项目 , 用到了axios发送请求 , 发现了一些以前之一没有注意的东西~~~ , 我所有的请求发送之前都会有一个预请求 , 不论是get请求还是post请求都会有 .
一开始以为是axios自带的 , 所以去看了一下axios的issue , 发现并不是这么回事 ... , 作者说预请求不是axios整的 , 是CORS整的 ,
然后我就按照作者的提示去看了cors跨域的相关资料 , 当然了, 我看的是中文版, 说是只有简单请求才不发送预请求 , 以下是不发送预请求的简单请求条件:
1 请求方法使用get head post
2 只能使用如下对CORS安全的请求头字段
Accept Accept-Language Content-Language Content-Type( 有额外限制 : 取值仅为text/plain 、multipart/form-data 、application/x-www-form-urlencoded ) DPR Downlink Save-Data Viewport-Width Width
3 请求中的任意XMLHttpRequestUpload对象均没有注册任何监听事器;XMLHttpRequestUpload对象可以使用XMLHttpRequest.upload属性访问 .
4 请求中没有使用ReadableStream对象 .
由于有点小忙 , 所以还没有实验怎么按照文章实现axios不发送预请求 , 下次研究好了再补上 , 最后 , 附上MDN关于预请求的地址 , 里面资料更详细 : https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
部分内容参考引用自 : MDN