import axios from "axios";
// 创建axios,赋给变量service
const service = axios.create({
baseURL: "",
timeout: 1000 * 60 * 3, // 超时
headers: { "Content-Type": "application/json; charset=utf-8" },
});
// 请求拦截器
service.interceptors.request.use(
(config) => {
if (config.url === "/login") {
return config;
} else {
config.headers["Authorization"] = localStorage.getItem("token");
return config;
}
},
(err) => {
err.message = "服务器异常,请联系管理员!";
// 错误抛到业务代码
return Promise.reject(err);
}
);
const VUE_APP_PAGE_NAME = process.env.VUE_APP_PAGE_NAME;
// 响应拦截器
service.interceptors.response.use(
(response) => {
if (response.status === 200) {
if (response.data.code !== "undefine" || response.data.code !== null) {
if (response.data.code === 401 || response.data.code === 403) {
// 打包单独页面时,需要修改此处
location.href = VUE_APP_PAGE_NAME ? `${process.env.BASE_URL}${VUE_APP_PAGE_NAME}/#/loginV` : "./nav/#/loginV";
}
return response.data;
} else {
return response;
}
} else {
return Promise.reject("未知错误");
}
},
(err) => {
err.message = "请求超时或服务器异常,请检查网络或联系管理员!";
return Promise.reject(err);
}
);
// 将service 导出
export default service;
在使用时这样使用:
import request from "@/utils/request";
import myStore from "../store/projectConfig";
const api = myStore.state.api; // 我这个项目的地址
/**
* @description get请求
* @param {*Object} data 参数
*/
export function 方法名(data) {
return request({
url: api + "路径",
method: "GET", // 请求方式
params: data,
});
}
/**
* @description post请求
* @param {*Object} data 参数
*/
export function 方法名(data) {
return request({
url: api + "路径",
method: "POST", // 请求方式
data: data,
});
}