基于axios给请求添加token

基于axios封装

创建js文件

复制代码
import axios from "axios";
import { baseURL } from '../utils/config.js'     //请求的地址
if (process.env.NODE_ENV === 'development') {
  baseURL;
} else {
  baseURL;
}

//创建自定义axios对象
const instance = axios.create({
  baseURL,
  timeout: 30000,
})


// 增加请求拦截器
instance.interceptors.request.use(
  config => {
    // console.group('本次请求的地址为:', config.url)
    // 给headers添加token属性
    if (sessionStorage.getItem('Token')) {
      config.headers.token = sessionStorage.getItem('Token');
    }
    // alert('解决');
    // alert(JSON.stringify(config))
    // if (store.state.meteoToken) {
    //     config.headers.Authorization = store.state.meteoToken;
    // }
    return config
  },
  error => {
    // loadingCount = 0;
    // if (loadingInstance) {
    //     loadingInstance.close();
    // }
    // alert('这里写警示框弹出的内容');
    return error;
  }
)
//暴露get
export function get (url, params = null) {
  return new Promise((resolve, reject) => {
    instance.get(url, {
      params,
    }).then(res => {
      resolve(res.data);
    }).catch(err => {
      reject(err);
    });
  })
}

//暴露post  
export function post (url, params, isFile = false) {
  let data = params;
  //处理请求头
  let config = {
    Headers: { "Content-Type": "application/json" }
  }

  //处理文件
  if (isFile) {
    data = new FormData();
    for (let i in params) {
      data.append(i, params[i])
    }
    //处理有文件时请求头
    config = {
      Headers: {
        "Content-Type": "multiple/form-data"
      }
    }
  }
  // alert('ewuhshgjsnfsj'); 
  return new Promise((resolve, reject) => {
    instance.post(url, data, config).then(res => {
      resolve(res.data);
    }).catch(err => {
      // alert(err)
      reject(err)
    })
  })
}

封装之后可以直接引用该js文件中的get、post

相关推荐
ian4u几秒前
车载 Android C++ 完整技能路线:从基础到进阶
android·开发语言·c++
lly2024061 分钟前
JSP 过滤器
开发语言
郝学胜-神的一滴1 分钟前
[力扣 227] 双栈妙解表达式计算:从思维逻辑到C++实战,吃透反向波兰式底层原理
java·前端·数据结构·c++·算法
aq55356003 分钟前
数字资源分发的技术革命与未来趋势
java·开发语言·python·php
AI玫瑰助手5 分钟前
Python基础:元组的定义与不可变特性(对比列表)
开发语言·python·信息可视化
张驰咨询公司8 分钟前
六西格玛数据分析实战:用Python实现DPMO与西格玛水平计算
开发语言·python·数据分析·六西格玛培训·六西格玛培训公司
淼淼爱喝水12 分钟前
基于DOM型XSS漏洞与利用实验教程
前端·xss·dom·dvwa
invicinble12 分钟前
对于java基础
java·开发语言
逻辑驱动的ken22 分钟前
Java高频面试考点场景题13
java·开发语言·jvm·面试·求职招聘·春招
Evand J23 分钟前
【MATLAB代码介绍】无迹粒子滤波(Unscented Particle Filter),运动目标滤波定位
开发语言·matlab·粒子滤波·upf·无迹