Axios 是一個基于 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。主要使用在vue項目中發(fā)網(wǎng)絡請求。
- 安裝可以使用
npm,cnpm或者yarn(需要電腦安裝node.js)。
cnpm install axios
- 在vue項目中引入
import axios from 'axios';
- 設置請求頭
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
- 設置Authorization(攜帶token)
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
- 設置響應時間
axios.defaults.timeout = 30 * 1000;
- 請求攔截器
axios.interceptors.request.use(function (config) {
// 在發(fā)送請求之前做些什么
return config;
}, function (error) {
// 對請求錯誤做些什么
return Promise.reject(error);
});
- 響應攔截器,判斷token是否過期。
axios.interceptors.response.use(function (response) {
// 對響應數(shù)據(jù)做點什么
return response;
}, function (error) {
// 對響應錯誤做點什么
return Promise.reject(error);
});
- get請求
axios.get(url, {params: params})
.then(res => {resolve(res.data)})
.catch(err => {reject(err.data)});
- post請求
axios.post(url, params)
.then(
res => {
resolve(res.data)
},
err => {
reject(err.data)
}
)
.catch(err => {
reject(err.data)
});
- 將axios的api掛載到vue原型對象中,就可以通過
this.$api.方法名發(fā)起請求
import api from './api/api';
Vue.prototype.$api = api;