为啥axios请求接口会发起两次请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥axios请求接口会发起两次请求相关的知识,希望对你有一定的参考价值。

一个是用来检测服务器是否能够正常工作的 options 请求,没有实质性的意义,后台可以判断为 options 类型请求时什么都不返回就行了。 参考技术A 1. 设定一个密钥比如key = ‘2323dsfadfewrasa3434'。 2. 这个key 只有发送方和接收方知道。 3. 调用时,发送方,组合各个参数用密钥 key按照一定的规则(各种排序,MD5,ip等)生成一个access_key。一起post提交到API接口。

为什么axios请求接口会发起两次请求

之前在使用axios发现每次调用接口都会有两个请求,第一个请求时option请求,而且看不到请求参数,当时也没注意,只当做是做了一次预请求,判断接口是否通畅,但是最近发现并不是那么回事。

首先我们知道了额外的一次请求时option请求,那么这个是干嘛用的呢?

如果只是普通的 ajax 请求,也不会发起这个请求,只有当 ajax 请求绑定了 upload 的事件并且跨域的时候,就会自动发起这个请求。详细看http://www.tuicool.com/articles/3UBzIbb。

这样就明了了,就是我们有upload事件绑定(一般都是本地调试,所以会有跨域),我仔细看了下axios文档,发现config配置文件中有两个参数

// onUploadProgress: function(progressEvent) {
    //     // Do whatever you want with the native progress event
    // },


 // onDownloadProgress: function(progressEvent) {
 //     // Do whatever you want with the native progress event
 // },

分别处理上传和下载事件,也就是这里绑定了upload事件,所以每次请求都会有个option请求。

解决方案很简单,直接注释掉就好了,当然如果开发的工程上线使用跟请求的接口是同一个域名下自然不会两次请求。都看个人需求吧,关于axios的使用上一篇博文有介绍http://www.cnblogs.com/Upton/p/6180512.html

以上是关于为啥axios请求接口会发起两次请求的主要内容,如果未能解决你的问题,请参考以下文章

为啥axios请求接口会发起两次请求

为什么axios请求接口会发起两次请求

vue 中使用 axios 请求接口,请求会发送两次问题

解决vue axios跨域请求发送两次问题

为啥 axios get 方法请求发送两次?

upload组件,上传时为啥有两次请求