axios封装

本文介绍了如何对axios进行配置和封装,包括设置基础URL、超时时间、请求头信息,并添加请求拦截器处理token。同时,讨论了Vue组件间通信的方式,包括父组件向子组件传递参数和子组件向父组件传递参数的方法。
摘要由CSDN通过智能技术生成

封装的意义

  • 提高代码可读性
  • 提高代码的可维护性
  • 减少代码的书写

封装

// src/api/http.js
import axios from ‘axios’
axios.defaults.baseURL=“http://127.0.0.1:8000/”
 //axios.defaults.baseURL=“http://172.16.240.175/:8000/”
//全局设置⽹络超时
axios.defaults.timeout = 10000;
//设置请求头信息
 axios.defaults.headers.post[‘ContentType’]=‘application/json’;
 axios.defaults.headers.put[‘ContentType’]=‘application/json’;
 axios.interceptors.request.use(
   config => {
 // 每次发送请求之前判断是否存在token,如果存在,则统⼀在http请求的header都加上token,不⽤每次请求都⼿动添加了
  const token=localStorage.getItem(“token”)
  // console.log(token)
   if (token) {
 config.headers.Authorization =‘JWT+token
  }
   return config;
  },
error => {
  return Promise.error(error);
   })
axios.interceptors.response.use(
// 请求成功
 // res => res.status =200?Promise.resolve(res):
Promise.reject(res),
 res => {
  if (res){
//加上201的原因是因为:modelviewset的post求添加成功后返回的状态码是201
   if(res.status
=200||res.status === 201){
  return Promise.resolve(res);
    }
  }
  },
// 请求失败
error => {
 if (error.response) {
// 判断⼀下返回结果的status== 401?==401跳转登录⻚⾯。 !=401passs
// console.log(error.response)
  if (error.response.status === 401) {
 // 跳转不可以使⽤this. r o u t e r . p u s h ⽅ 法 / / t h i s . router.push⽅法 //this. router.push

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值