美文网首页
VUE关于Axios的配置

VUE关于Axios的配置

作者: KC莲 | 来源:发表于2020-01-13 19:25 被阅读0次

安装axios

1.通过vue ui引入
2.手敲

install axios -S

axios文件结构

image.png

axios:存放axios实例

/**
 * axios请求插件
 * @author flytoyou
 */

import axios from 'axios';
import getEnv from "../utils/getEnv";
// 创建axios实例
const instance = axios.create({
  baseURL: getEnv().env,//请求的url由工具配置
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  },
  withCredentials: false
});

/**
 * request过滤器
 * 此处为发送请求前的过滤操作
 */
instance.interceptors.request.use((config) => {
  config.headers['Authorization'] = localStorage.getItem('yyq_token') || '';
  return config;
}, (err) => {
  // 将错误抛出,供程序处理
  return Promise.reject(err);
});

/**
 * response过滤器
 * 此处为请求返回时的过滤操作
 */
instance.interceptors.response.use((response) => {
  return response.data;
}, (err) => {
  // 将错误抛出,供程序处理
  return Promise.resolve(err);
});

// 返回axios实例
export default instance;

getEnv:用来存放请求用的参数

/**
 * 根据环境返回请求参数
 */

export default function getEnv () {
  const protocol = window.location.protocol;
  const host = window.location.host;
  let socketURL = 'ws://xxxx:9999';
  let bucket = 'xxxxxx';
  let env = 'http://xxxxxx:10002';
  if (/^(test-|localhost|192)/.test(host) || !host) {
      //将内容配置为对应的参数
  }
  return {
    env,
    bucket,
    socket: socketURL
  };
}

api:用来存放各个api模块
以system.js为例

import axios from '../axios';

export default {
  /**
   * 查询版本
   *
   * @returns 后台返回的数据
   */
  systemVersion() {
    return axios({
      method: 'get',
      url: '/cfg/systemVersion',
      noLoading: true
    });
  }
}

使用axios

导入api实例
import system from "../api/system";
发送axios请求
system.systemVersion().then((res) => {
    console.log(res)
}).catch((err) => {
    console.log(err)
});

相关文章

网友评论

      本文标题:VUE关于Axios的配置

      本文链接:https://www.haomeiwen.com/subject/zohnactx.html