其實就是你是想攔截住咱們的這個請求的過程,好比你想在請求前先作一些事,攔截下請求,等這件事作完在去請求,或者是要等請求結束作一些事,再返回數據,能夠攔截處理以後再返回,其過程大白話一些解釋就是如此,本人最怕聽一些很高深的概念性解釋,這裏輸出就不說那麼多專業的術語!javascript
axios.interceptors()
// instance實例攔截請求
instance.interceptors.request.use(
config => {
console.log(config);
// 攔截後在這裏處理信息
return config;
}, err => {
console.log(err);
})
複製代碼
使用場景:java
好比咱們這裏攔截響應後只返回了一個data數據,其餘數據就被過濾掉了,那麼最後請求得到的響應數據就只有data數據了!ios
// 攔截響應
instance.interceptors.response.use(
res => {
console.log(res)
return res.data
}, err => {
console.log(err)
}
)
複製代碼
axios完整的封裝實例:axios
只須要將這條保存到一個request.js文件中,在其餘地方調用這個文件便可請求接口數據api
import axios from 'axios'
// 這裏使用default導出,是爲了之後的擴展,能夠導出多個方法
export function request(config){
// 1. 建立axios實例
const instance = axios.create({
baseURL: 'https://store.crmeb.net/api/pc',
timeout: 5000
})
// 攔截請求
instance.interceptors.request.use(
config => {
console.log(config);
return config;
}, err => {
console.log(err);
})
// 攔截響應
instance.interceptors.response.use(
res => {
console.log(res)
return res.data
}, err => {
console.log(err)
}
)
// 發送請求
return instance(config)
}
複製代碼
使用方法服務器
import { request } from "./network/request"
request({
url: '/get_company_info',
}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
複製代碼