网站建设最好的,国家时事新闻,中山高端网站建设价格,介休门户网站不知道大家有没有过这种感觉#xff0c;突然一个问题百思不得其解#xff0c;然后突然有一天就明白了。然后就感觉这个问题原来这么简单#xff0c;本来想记录下来#xff0c;但是又感觉这么简单的问题记录下来没啥意义。但是回过头来想一想#xff0c;这个问题之前其实困…不知道大家有没有过这种感觉突然一个问题百思不得其解然后突然有一天就明白了。然后就感觉这个问题原来这么简单本来想记录下来但是又感觉这么简单的问题记录下来没啥意义。但是回过头来想一想这个问题之前其实困扰了你很长时间。感觉还是记录一下比较好万一哪一天突然对这个问题有了新的扩展呢
先来回顾一下axios的基本使用怎么发送一个请求
发送get请求
// 发送的链接就是 https://www.baidu.com?a1
axios.get(https://www.baidu.com, { params: { a: 1 } })// 或者这样
axios({method: get,url: https://www.baidu.com,params: { a: 1 }
})// 如果发送一个带请求头的就是这样
axios.get(https://www.baidu.com, { params: { a: 1 }, headers: { token: 123 } })// 或者这样
axios({method: get,url: https://www.baidu.com,params: { a: 1 },headers: { token: 111 }
})发送post请求
axios.post(https://www.baidu.com, { a: 1 })// 或者这样
axios({method: post,url: https://www.baidu.com,data: { a: 1 }
})// 如果发送一个带请求头的就是这样
axios.post(https://www.baidu.com, { a: 1 }, { headers: { token: 123 } })// 或者这样
axios({method: post,url: https://www.baidu.com,data: { a: 1 },headers: { token: 111 }
})这里我们可以发现
axios.get可以传递两个参数 url和其他参数 axios.post可以传递三个参数 url、请求发出去的参数、其他参数
好像不方便记忆一会传2个一会传3个的。所以一般情况下即使是对项目封装网络请求我也会使用axios()去封装而不是使用axios.get和axios.post。
那么使用axios()get请求时如果给请求传一些参数那么可以使用params例如
axios({method: get,url: https://www.baidu.com,params: { a: 1 }
})而使用post的时候需要使用data例如
axios({method: post,url: https://www.baidu.com,data: { a: 1 }
})好奇挂啊为什么不能使用同一个参数呢其实params和data有各自的使用意义。
params是拼接在url后面的参数 data是请求体里面的参数
例如发送post的时候
axios({method: post,url: https://www.baidu.com,data: { a: 1 },params: { a: 2 }
})上面例子a1会放在url后面拼接而a2会在请求体中。所以params和data其实是各司其职的。
那么再来看一下如果像使用axios.post我既想在url后面拼接参数又想在请求体里面有参数该怎么写呢
axios.post(https://www.baidu.com, { a: 1 }, { params: { a: 1 }, headers: { token: 123 } })所以还是感觉直接调用axios好用