前言:是在不想记这些(拦截器和封装后端接口)
1.安装axios
npm i axios
2.在 src/utils/request.js 模块下设置如下代码
import axios from 'axios'
import store from '@/store'
import router from '@/router'
const baseURL = 'http://pcapi-xiaotuxian-front-devtest.itheima.net/'
const instance = axios.create({
timeout: 3000,
baseURL: baseURL
})
instance.interceptors.request.use((config) => {
const token = store.state.user.profile.token
if (token) {
config.headers.Authorization = 'Bearer ' + token
}
return config
}, (err) => {
return Promise.reject(err)
})
instance.interceptors.response.use((res) => {
return res.data
}, (err) => {
if (err.response && err.response.status === 401) {
store.commit('user/updateUser', {})
return router.push('/login')
}
return Promise.reject(err)
})
export default (options) => {
return instance({
method: options.method,
url: options.url,
[options.method.toUpperCase() === 'GET' ? 'params' : 'data']: options.data
})
}