Vue之封裝二次axios
第一步,首先安裝axios,這裡推薦區域性安裝
npm i -D axios
第二步,在src目錄下建立request資料夾,然後在裡面建立兩個檔案http.js、api.js
http.js
import axios from ‘axios’
// 環境的切換
if (process.env.NODE_ENV === ‘development’) {
axios.defaults.baseURL = ‘’ // 開發環境
} else if (process.env.NODE_ENV === ‘debug’) {
axios.defaults.baseURL = ‘’ // 除錯環境
} else if (process.env.NODE_ENV === ‘production’) {
axios.defaults.baseURL = ‘’ // 生產環境
}
axios.defaults.timeout = 10000
axios.defaults.headers.post[‘Content-Type’] = ‘application/x-www-form-urlencoded;charset=UTF-8;multipart/form-data’
// 請求攔截器
axios.interceptors.request.use(
config => {
// 每次傳送請求之前判斷是否存在token,如果存在,則統一在http請求的header都加上token,不用每次請求都手動添加了
// 即使本地存在token,也有可能token是過期的,所以在響應攔截器中要對返回狀態進行判斷
// const token = this.$store.state.Authorization
// token && (config.headers.Authorization = token)
// return config
if (localStorage.getItem(‘Authorization’)) {
config.headers.Authorization = localStorage.getItem(‘Authorization’);
}
return config;
},
error => {
return Promise.error(error)
})
// 響應攔截器
axios.interceptors.response.use(
response => {
if (response.status === 200) {
return Promise.resolve(response)
} else {
return Promise.reject(response)
}
},
// 伺服器狀態碼不是200的情況
更多內容請見原文,原文轉載自:https://blog.csdn.net/weixin_44519496/article/details/119352987