首先创建一个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
就可以了
标签:axios,请求,res,request,error,import,拦截,response From: https://blog.csdn.net/qq_55121347/article/details/140890983