vue拦截器的一次实践

it2022-05-09  28

import Vue from 'vue';import axios from 'axios';import store from '../store/';

// 默认配置axios.defaults.baseURL = 'http://www.xxxx.com'; axios.defaults.headers.post['Content-Type'] = 'application/json';

export const request = (config) => { return axios(config);};

// http request 拦截器axios.interceptors.request.use( (config) => { if(store.state.token) { config.headers.Authorization = `${store.state.token}`; // token保存在store中 } return config; }, (err) => { return Promise.reject(err); });

// http response 拦截器axios.interceptors.response.use( (response) => { return response; }, (error) => { if(error.response) { switch (error.response.status) { case 401: router.replace({ path: '/login', query: {redirect: router.currentRoute.fullPath} }); } } return Promise.reject(error.response.data); });

 

 

import {request} from '/utils/httpAxios.js';request({ method: 'post', url: '', data: {} }). then(function (response) { //处理成功的请求 }). catch(function (error) { sonsole.log(error); });

转载于:https://www.cnblogs.com/znj211985211/p/7462300.html

相关资源:Vue封装Axios请求和拦截器的步骤

最新回复(0)