// axios.js
import axios from 'axios'
import qs from 'qs'
import store from '../store'
import {Message} from 'view-design'
import {clearSystemInfo} from "./util";
import router from "../router";
import Cookies from "js-cookie";
axios.defaults.withCredentials = true
// 拦截重复请求
let pending = {}
const CancelToken = axios.CancelToken
// 请求标识;完成请求后也需要执行删除记录,所以添加此参数避免执行无用操作
const removePending = (key, isRequest = false) => {
if (pending[key] && isRequest) {
pending[key]('取消重复请求')
}
delete pending[key]
}
/**
* 由于我们请求用了代理 直接代理到测试服务器 因此请求响应拦截器的config.url是一致的,不需要标识值区分
* 如果请求拦截器和响应拦截器的config.url不一致,就需要一个标识值用来区分判断
*/
const getRequestIdentify = (config) => {
const url = config.url
// 返回url及请求参数 post方法请求参数为config.data get方法请求参数为config.params
if (config.method === 'post') {
return encodeURIComponent(config.url + JSON.stringify(config.data))
}
return encodeURIComponent(url + JSON.stringify(config.params))
}
class HttpRequest {
constructor() {
this.baseUrl = ''
this.queue = {}
}
getInsideConfig() {
const config = {
baseURL: '
api接口管理
最新推荐文章于 2023-11-13 08:56:57 发布