企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
// src/utils/token.js ~~~ // cookie保存token import Cookies from 'js-cookie' const TokenKey = 'DME-Token' export function getToken() { return Cookies.get(TokenKey) } export function setToken(token) { // 过期时间为1天 return Cookies.set(TokenKey, token, { expires: 1 }) } export function removeToken() { return Cookies.remove(TokenKey) } ~~~ //httprequest ~~~ /* * @Date: 2018-11-23 * @Description: 构造axios实例类 */ import axios from 'axios' // import store from '@/store' // import { getToken } from '@/utils/token' /** * @class HttpRequest * @param {Object} options { BASEURL, TIMEOUT } * @description 基于axios二次封装类,提供给不同地址实例使用 * 目前有三个实例(基础,dataeye,mock),共用一种拦截器 */ export default class HttpRequest { constructor({ BASEURL, TIMEOUT = 10000 }) { this.config = { baseURL: BASEURL, timeout: TIMEOUT } this.instance = axios.create(this.config) // 安装拦截器 this.interceptors() return this.instance } // 拦截器 interceptors() { // 请求拦截 // this.instance.interceptors.request.use( // config => { // // 判断vuex中是否存在token // if (store.getters.token) { // // 请求头携带token // config.headers['DME-Token'] = getToken() // } // return config // }, // error => Promise.reject(error) // 请求失败 // ) // 响应拦截 this.instance.interceptors.response.use( response => { const { status, data } = response // 需要和后端约定状态码 if (status === 200) { if (data.code === 2000 || data.code === 3000) { console.log(response) return Promise.reject(response) } return Promise.resolve(data) } console.log(response) return Promise.reject(response) }, error => { console.log(error) Promise.reject(error) } ) } getInstance() { return this.instance } } ~~~