传参
get请求
必须使用params关键字
axios.get('/user', {
params: {
ID: 12345
}
}).then((res)=>{...})
// 参数跟在请求地址后面
axios.get('/user?ID=12345').then((res)=>{...})
post请求
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
}).then((res)=>{...})
同时发送多个请求,以添加或关闭loading
function getUserAccount() {
return axios.get('/user/12345');
}
function getUserPermissions() {
return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) {
// Both requests are now complete
}));
对象配置形式
axios({
method: 'post',
url: '/user/12345',
data: {
firstName: 'Fred',
lastName: 'Flintstone'
}
});
提取出公共请求数据
const instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
配合vue-axios使用可将axios挂在到vue实例上,直接通过this调用它
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)
拦截器Interceptors
// 接口统一进行响应拦截
axios.interceptors.response.use(function (response) {
const res = response.data
if (res.status === 0) {
return res.data
} else if (res.status === 10) {
window.location.href = '/login'
} else {
alert(res.msg)
}
})