You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bocai_supplyChain_pc/src/utils/request.js

132 lines
4.7 KiB
JavaScript

4 years ago
import axios from "axios";
4 years ago
import router from "@/router";
2 years ago
import vue from '../main-dev.js'
import Cookies from "js-cookie";
3 years ago
import qs from "qs";
2 years ago
console.log('use message in request', this);
console.log('use message in request', vue);
4 years ago
// import Vue from "vue";
2 years ago
// console.log('use message in request2', Vue);
3 years ago
// const baseURL = "http://1shoudan.com"; // 正式环境线上 废弃
2 years ago
const baseURL = "//idaotian.com"; // 正式环境线上
// const baseURL = "//test.renminshitang.com.cn/daotian/api_dev"; // 测试环境本地
2 years ago
// const baseURL = "//idagou.cn"; // 正式环境线上 废弃
3 years ago
// console.log(baseURL);
3 years ago
// const baseURL = "http://localhost:8001";
4 years ago
// const data1 = require.context("./", false, /\.js$/); // 测试用
// console.log(data1.keys());
4 years ago
axios.defaults.withCredentials = true; //添加这行代码
2 years ago
// 动态设置https协议,拼接到接口基础路径
let httpType = window.location.protocol
3 years ago
// axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"
4 years ago
// console.log(axios);
4 years ago
const service = axios.create({
2 years ago
// baseURL: "/api_prod", // url = base url + request url 测试
baseURL: httpType + baseURL, // baseURL: "/api", // url = base url + request url 正式
withCredentials: true, // send cookies when cross-domain requests
timeout: 60000, // request timeout
crossDomain: true,
4 years ago
});
3 years ago
service.interceptors.request.use(
2 years ago
(req) => {
// console.log(req);
// if (req.method == "post" && req.headers["Content-type"]) {
// if (req.headers["Content-type"].indexOf("multipart/form-data") == -1 && req.headers["Content-type"].indexOf("application/x-www-form-urlencoded") == -1) {
// let dataObj = qs.stringify(req.data);
// console.log(dataObj);
// req.data = dataObj;
// }
// }
3 years ago
2 years ago
if (localStorage.getItem("LOGIN_DATA")) {
console.log('req', req);
console.log('req url', req.url);
2 years ago
2 years ago
req.headers.Authorization = "Bearer " + localStorage.getItem("LOGIN_DATA_token");
req.headers.agencyId = JSON.parse(localStorage.getItem("DAOTIAN_agencyid"))
2 years ago
req.headers.appId = "daotianpc";
req.headers["g-open-env"] = 'WEB-PAGE'
if (req.url == '/assistant/custom/job/v2/list') {
req.headers.appId = ''
}
3 years ago
console.log('getToken++++++++++++++++++++++++++++++++++++++++++++++++++++');
2 years ago
}
// application/json
// if(req.headers.common.Accept.indexOf('application/json') > 0 || req.headers.Accept.indexOf('application/json') > 0){
// console.log('is application/json');
// }
return req;
},
(err) => {
console.log(err);
}
3 years ago
);
4 years ago
service.interceptors.response.use(
2 years ago
(response) => {
2 years ago
console.log('response', response);
2 years ago
let { msg, status } = response.data;
// status = 9999
2 years ago
// return response;
// console.log(status);
2 years ago
// response.data.status = 9999
if (response.data.status == 9999) {
2 years ago
localStorage.removeItem("LOGIN_DATA");
2 years ago
localStorage.removeItem("LOGIN_DATA_token");
localStorage.removeItem("DAOTIAN_agencyid");
2 years ago
router.push("/login");
// 跳转到登录页面
// this.$message.warning(msg);
return Promise.reject(new Error("token过期"));
}
2 years ago
if (response.data.status === 200) {
2 years ago
return response;
2 years ago
} else if (response.data.status === 2001) {// 职位名称
// message.error('职位名称:请不要填写【' + response.data.msg + '】相关违禁内容');
// this.$message.error(response.data.msg);
return response;
// return Promise.reject({
// code: 2001,
// msg: response.data.msg
// });
} else if (response.data.status === 2002) {// 职位名称
// message.error('职位名称:请不要填写【' + response.data.msg + '】相关违禁内容');
console.log('response.data.status === 2002', response.data.status);
2 years ago
vue.$message.error(response.data.msg)
2 years ago
// this.$message.error(response.data.msg);
2 years ago
setTimeout(() => {
localStorage.removeItem("LOGIN_DATA");
localStorage.removeItem("LOGIN_DATA_token");
localStorage.removeItem("DAOTIAN_agencyid");
// router.push({
// path: "/login",
// });
router.push("/login");
}, 2000);
2 years ago
return Promise.reject(new Error("token过期"));
// return Promise.reject({
// code: 2002,
// msg: response.data.msg
// });
2 years ago
} else {
2 years ago
// Message.error(response.data.msg)
// vue.$message.error(response.data.msg)
return response;
// return Promise.reject(new Error(msg));
2 years ago
}
},
(error) => {
console.log(error);
// if (error.toString().indexOf("9999") !== -1) {
// router.push("/login");
// // Vue.$message.warning(msg)
// } else if (error.message.indexOf("500") !== -1) {
// }
// return Promise.reject(error);
}
4 years ago
);
4 years ago
export default service;