123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import axios from 'axios'
- import store from '../store'
- /* 创建 axios 实例 */
- let http = axios.create({
- baseURL: process.env.VUE_APP_API_ROOT,
- timeout: 50000,
- headers: {'Content-Type': 'application/json'},
- transformRequest: [function (data, headers) {
- if (headers['Content-Type'] === 'multipart/form-data;charset=UTF-8') {
- return data
- } else {
- headers['Content-Type'] = 'application/json'
- }
- return JSON.stringify(data)
- }],
- })
- /* http request 拦截器 */
- http.interceptors.request.use(
- config => {
- if (store.state.user.token) {
- config.headers.Authorization = `${store.state.user.token}`
- }
- return config
- },
- err => {
- return Promise.reject(err)
- }
- )
- /* response 拦截器 */
- http.interceptors.response.use(
- response => {
- return Promise.resolve(response.data)
- },
- async error => {
- if (error.response.status === 403) {
- await store.dispatch('logout')
- }
- return Promise.reject(error.response.data)
- }
- )
- export default http
|