目录
一、安装Axios
npm i axios
-g 全局安装
在要用的模块中导入axios
import axios from 'axios'
二、发送请求
(一)Get请求
// 请求头携带参数,案例:?uid=1001
axios.get(
'http://localhost:8080/user/api/v1/user/query', {
params: {
uid: '1001'
}
}).then(res => {
console.log(res.data)
}).catch(err => {
console.log("请求错误=" + err)
}).finally(() => {
})
(二)Post请求
1. 第一种方式
function funPost() {
// 请求体携带参数
axios.post(
'http://localhost:8080/user/api/v1/user/query',
'uid=1001'
).then(res => {
console.log(res.data)
}).catch(err => {
console.log("请求错误=" + err)
}).finally(() => {
})
}
2. 第二种方式
后端需要使用@RequestBody User user注解
接收json转为对象
function funPost() {
// 请求体携带参数
axios({
url: 'http://localhost:8080/user/api/v1/user/query',
method: 'post',
data: {
'id': '1001'
}
}).then(res => {
console.log(res.data)
}).catch(err => {
console.log("请求错误=" + err)
}).finally(() => {
})
}
三、拦截器
(一)请求前拦截器
// 请求前拦截器
axios.interceptors.request.use(function (config) {
config.url = config.url + "?token=ABC"
return config
}, function (err) {
return Promise.reject(err)
})
(二)应答拦截器
五、Axios全局默认值
axios.defaults.baseURL = 'http://localhost:8000'
axios.defaults.timeout = 5000
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
四、封装
路径:@/api/httpRequest.js @是src的目录
import axios from "axios";
// 设置默认值
axios.defaults.baseURL = 'http://localhost:8000/api'
axios.defaults.timeout = 7000
// get
function doGet(url, params) {
return axios({
url: url,
method: 'get',
params: params
})
}
// post
function doPost(url, params) {
return axios({
url: url,
method: 'post',
params: params
})
}
// 暴露方法
export {doGet, doPost}