7.怎么配置一个axios来拦截前后端请求

首先创建一个axios.js文件

导入我们所需要的依赖

import axios from "axios";
import Element from 'element-ui'
import router from "./router";

设置请求头和它的类型和地址

注意先注释这个url,还没有解决跨域问题,不然会出现跨域

// axios.defaults.baseURL = "http://localhost:8081"
const request = axios.create({
    timeout: 5000,
    headers: {
//请求头的格式要求为json
        'Content-Type': 'application/json; charset=utf-8'
    }
})
request.interceptors.request.use(config => {
//将localStorage中的token放入请求头
    config.headers['Authorization'] = localStorage.getItem("token") // 请求头带上token
    return config
})

设置后端返回给前端数据的处理方式

//就是当后端返回给前端code的值来回馈不同的效果
request.interceptors.response.use(response => {
        let res = response.data;
        console.log("response")
        console.log(res)
        if (res.code === 200) {
            return response
        } else {
            Element.Message.error(res.msg? res.msg : '系统异常!', {duration: 3 * 1000})
            return Promise.reject(response.data.msg)
        }
    },
    error => {
        console.log(error)
        if(error.response.data) {
            error.message = error.response.data.msg
        }
        if(error.response.status === 401) {
            router.push("/login")
        }
        Element.Message.error(error.message, {duration: 3 * 1000})
        return Promise.reject(error)
    }
)

将他暴露出来

export default request

然后在main.js中修改

import axios from 'axios'
Vue.prototype.$axios = axios //

修改为

import request from "./axios";
Vue.prototype.$axios = request

就可以了

相关推荐
莲动渔舟几秒前
国产编辑器EverEdit - 在编辑器中对文本进行排序
java·开发语言·编辑器
滴_咕噜咕噜35 分钟前
C#基础总结:常用的数据结构
开发语言·数据结构·c#
martian66535 分钟前
【Java高级篇】——第16篇:高性能Java应用优化与调优
java·开发语言·jvm
许苑向上1 小时前
Java八股文(下)
java·开发语言
菜鸟一枚在这1 小时前
深入解析设计模式之单例模式
开发语言·javascript·单例模式
独孤求败Ace2 小时前
第44天:Web开发-JavaEE应用&反射机制&类加载器&利用链&成员变量&构造方法&抽象方法
java·开发语言
ObjectX前端实验室2 小时前
个人网站开发记录-引流公众号 & 谷歌分析 & 谷歌广告 & GTM
前端·程序员·开源
CL_IN2 小时前
企业数据集成:实现高效调拨出库自动化
java·前端·自动化
计算机-秋大田2 小时前
基于Spring Boot的农产品智慧物流系统设计与实现(LW+源码+讲解)
java·开发语言·spring boot·后端·spring·课程设计
matlabgoodboy2 小时前
Matlab代编电气仿真电力电子电机控制自动化新能源微电网储能能量
开发语言·matlab·自动化