调试vuex
封装axios
yarn add axios
import axios from 'axios'import store from '@/store'import router from '@/router'// baseURL设置/超时时间设置const instance = axios.create({baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',timeout: 5000})// 添加请求拦截器instance.interceptors.request.use(function (config) {// 1. 获取tokenconst { token } = store.state.user.profile// 2. 请求头设置tokenif (token) {config.headers.Authorization = `Bearer ${token}`}return config}, function (error) {// 对请求错误做些什么return Promise.reject(error)})// 添加响应拦截器instance.interceptors.response.use(function (response) {return response.data}, function (error) {// 对响应错误做点什么if (error.response && error.response.status === 401) {const redirectUrl = encodeURIComponent(router.currentRoute.value.fullPath)router.push('/login?redirectUrl=' + redirectUrl)}return Promise.reject(error)})/*** @param {String} - url 请求地址* @param {String} - method 请求类型* @param {Object} - submitData 对象类型,提交数据*/const request = (url, method, submitData) => {return instance({url,method,[method.toLowerCase() === 'get' ? 'params' : 'data']: submitData})}export default request
