// 引入axios
import axios from 'axios'
import store from '../store'
// 創建一個axios的實例 請求的真整地址就會拼接到baseURL後面
/*
* 例如,如果我們在其他地方使用了我們export default的instance 的時候,所有的客戶端請求都回先經過歐文們
*自定義的請求攔截器
* 所有的接口返回值都會先經過我們自定義的返回攔截器
* */
const instance = axios.create({
baseURL: '封裝的請求的地址',
// 請求超時的時間
timeout: 5000
})
// 請求攔截器
instance.interceptors.request.use(
config => {
// 可以先判斷store裏面的token是否有值,要是沒有token的話就直接請求攔截
if (store.state.token) {
config.headers.token = store.state.token
}
return config
},
err => {
console.log('err請求攔截報錯', err)
return Promise.reject(err)
}
)
// 請求返回的攔截,所有的請求安撫你會的數據都會先經過這個方法。
instance.interceptors.response.use(
response => {
// response 就是接口返回的值
const res = response.data
// 可以自定義返回的code的值,對於不同的code,做出不同的響應攔截
// 我們可以自定定義返
if (res.code === 404) {
// 這個是後我們就可以根據後臺返回的404去做頁面的跳轉
// 比如說我們可以跳轉到我們定義好的404界面
} else {
return res
}
},
err => {
// 攔截錯誤
console.log('err', err)
return Promise.reject(err)
}
)
export default instance
自定義的請求攔截
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.