介绍
axios是一款异步请求组件,支持常用的请求方式,自动的组装请求数据,
尤其和vue使用的时候会更加有优势,
全局拦截器
将axios绑定到Vue实例中,可以在全局使用,
// 全局拦截器 在请求的时候添加加载动作,也可以通过store中的变量控制不同的情况情况触发不同的加载动作。import axios from 'axios'import {REST_API} from '../config'import {Message} from 'iview'import store from '../store';axios.defaults.timeout = 60000axios.defaults.baseURL = REST_APIaxios.defaults.showSpin = true //请求加载loading效果axios.defaults.showMsg = false //请求后是否弹出消息// Add a request interceptoraxios.interceptors.request.use(function (config) {// config.headers['Authorization'] = 'Bearer '+store.getters.tokenif(store.getters.check){console.log("lalalla",)store.state.app.checkShow = true;}else if(config.showSpin) {document.querySelector('#global-spin').style.display = 'block'}return config;}, function (error) {console.log('>>> 发送失败。', error)document.querySelector('#global-spin').style.display = 'none'store.state.app.checkShow = false;return Promise.reject(error);})// Add a response interceptoraxios.interceptors.response.use(function (response) {document.querySelector('#global-spin').style.display = 'none'store.state.app.checkShow = false;store.state.app.check = falsereturn check(response)}, function (error) {check(error.response)console.log('>>> 返回失败。', error.response)document.querySelector('#global-spin').style.display = 'none'store.state.app.checkShow = false;store.state.app.check = falsereturn Promise.reject(error);})// 实例拦截器let instance = axios.create()在instance中添加拦截器,实例中的拦截器不会触发全局的拦截器;
异步请求
Promise
return new Promise(function (reslove, reject) {if (displayDate === 'none') {if (type === 'a') {facade.queryTop15In().then((res) => {if (res.status === 200) {reslove(res.data)// console.log("displayDate 先执行")}})} else if (type === 'b') {facade.queryTop15Out().then((res) => {if (res.status === 200) {reslove(res.data)// this.setState({// top15Data:res.data// })}})}} else {console.log("top15Data 执行这里?")this.state.top15Data = [],this.setState({top15Data: [],})}})
前后台分离的重定向
https://blog.csdn.net/li_gameover/article/details/79917473
整体思路: 在后台设置filter,进行校验token,
如果没有检验通过,设置响应头,在响应头添加一个字段,表明事重定向,
前台 使用拦截器,可以进行统一的拦截解析,进行重新路由
