axios的封装

70 阅读1分钟

引入

npm install axios

axios的封装

import axios from 'axios';
import router from '@/router'
import store from "../store/index"

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';

const service = axios.create({
  baseURL: store.state.baseUrl,
  timeout: 5000,// request timeout

});
service.interceptors.request.use(
  config => {
    // let token = window.localStorage.getItem("shusongToken")
    // if (token != "undefined") {
    //   config.headers.backstage_accessToken = token;
    // }
    return config;
  },
  error => {
    return Promise.reject(error);
  })
service.interceptors.response.use(
  response => {

    if(response.config.responseType=="arraybuffer"){
      return response
    }
    if (response.data.code == 501) {
      router.push("/login")

    } else if (response.data.code != 200) {
      store.state.code =200
      setTimeout(()=>{
        store.state.msg = response.data.msg
        store.state.code = response.data.code
      },500)

      return response.data;
    } else {
      return response.data;
    }

  },
  error => {

    store.state.code = ""
    setTimeout(()=>{
      store.state.msg = "网络错误,请重试"

    },500)
    return Promise.reject(error);
  }
)

export function get(url) {
  return service.get(url,);
}

export function post(url, data) {
  return service.post(url, data);
}

export function post1(url, data) {
  return service.post(url, data, {responseType: "arraybuffer"});
}

使用

import { get,  post ,post1} from '@/utils/request';


// 用户登录
export function xxx(params) {
    return post("xxxx", params)
  }