vue-cli项目中axios的配置文件

5 篇文章 0 订阅
本文详细介绍了在Vue项目中如何配置和使用Axios进行API请求,包括响应和请求拦截器的设置,以及如何处理401状态码进行身份验证,自动跳转登录页面。同时,展示了如何在请求头中加入token,确保每次请求的安全性。
摘要由CSDN通过智能技术生成

./src/api/index.js
首先引入axios,引入配置好的路由,并配置响应拦截器

import axios from "axios";
import router from "../router";
// http 响应拦截器
axios.interceptors.response.use(
  response => {
    // 对响应数据做处理
    return response;
  },
  error => {
    if (error.response) {
	  switch (error.response.status) {
		case 401:
		  router.push({
			path:'./login'
		  })
	  }
	}
	return Promise.reject(error);
  }
)

状态码401是对身份的验证,如果验证失败,需要跳转到登陆页面。

配置请求拦截器

axios.interceptors.request.use(
  config => {
    if( localStorage.getItem('token') ){
	  config.headers.Authorization = localStorage.getItem('token')
	}
    return config;
  },
  error => {
    return Promise.reject(error);
  }
)

如果本地存储存在token(如果token存入了vuex的store就从store取),每请求前在参数的headers.Authorization中存入token。

写一个创建请求时的配置

let qs from 'qs';
let config = {
  baseURL: process.env.VUE_APP_BASEURL,
  method: "get",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  transformRequest: [
    function(data) {
      // 由于使用的form-data传数据所以要格式化
      data = qs.stringify(data);
      return data;
    }
  ]
};
  • process.env.VUE_APP_BASEURL是vue-cli自己手动配置的值。
  • transformRequest允许在向服务器发送前,修改请求数据,只能用在 ‘PUT’, ‘POST’ 和 ‘PATCH’ 这几个请求方法,后面数组中的函数必须返回一个字符串,或 ArrayBuffer,或 Stream。
  • qs 是一个增加了一些安全性的查询字符串解析和序列化字符串的库。

写一个测试接口调用

//测试接口调用
export const getTestData = params => {
  return axios.post("getTestData", params, config).then(res => res.data);
};

接口调用可以全写在’./src/api/index.js’这个文件中,也可以独立出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值