vue中axios拦截器的使用

1. 在vue项目中下载axios

npm install axios --save-dev

2. 在项目下新建http.js文件

/* eslint-disable */
//简化后的代码,其中具体业务处理部分按自己项目需求添加
import axios from 'axios'

const instance = axios.create({
  baseURL: process.env.API_ROOT,//请求基础路径
  timeout: 10000,//超时设置,根据具体需求
});

//请求拦截器可以在请求前做一些统一处理,比如加请求头、超时处理等
instance.interceptors.request.use(
  config => {
    config.headers['X-Requested-With'] = 'XMLHttpRequest'
    config.headers['Content-Type'] = 'application/json; charset=UTF-8' 
    return config
  },
  error => {
   	console.log(error)
    return Promise.reject(error)
  }
)
// http响应拦截器
instance.interceptors.response.use(res => {
    //可以根据后端返回的状态码判断,比如登录失效,请求返回错误等的处理
    if(res.data.error == 5004){
      //登录token失效的时候可以进行一些操作,比如提示,跳转登录页
    }
    return res
  },
  error => {
  	return Promise.reject(error)
  }
)

export default instance

3.在main.js中引入

import axios from '@/assets/js/http'
Vue.prototype.$http = axios

4.组件中使用

//1.直接使用
this.$http.get(`url?param=${param}`)
.then(res => {

}).catch(err=>{

})
//2.当然你也可以创建一个api.js文件,将请求统一管理,暴露method和params,然后抛出一个promise也是可以的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值