axios 配置请求拦截器和响应拦截器

2,846 阅读1分钟

1.安装axios

npm install axios --save

2.引入模块

在untils文件夹中创建request.js文件,引入axios模块

import axios from "axios";

3.创建axios实例

const service = axios.create({
  baseURL: “”,//请求地址
  timeout: 2000,  // 超时时间 单位是ms
})

4.请求拦截器 请求拦截器可以用来配置公共的请求头,加载弹窗等,示例代码中弹窗使用的mint-UI,也可以使用其他UI框架,注意使用前安装、引入;

import { Toast, Indicator } from "mint-ui";

service.interceptors.request.use(config => {
  Indicator.open({  //加载提示框
    text: '加载中...',
    spinnerType: 'fading-circle'
  });
  config.data = config.data;
  config.headers = {
    'Content-Type': 'application/x-www-form-urlencoded' //配置请求头
  }
  return config;
}, error => {
  Promise.reject(error);
});

5.响应拦截器 响应拦截器可以用来针对后端返回的类型做统一的处理,比如给一些提示;

请求拦截里如果加了加载框,这里也可以统一关闭;

service.interceptors.response.use(response => {
  Indicator.close();  //关闭加载框
  if (response && response.status) {
    //这里可以做统一的处理
  } 
}, error => {
  Indicator.close();  //关闭加载框
  Toast({
    message: "网络错误!",
    iconClass: "icon_fail",
    duration: 2000,
  });
  return Promise.resolve(error.response);
})

这样请求,响应都做到了统一的处理了