vue axios封装


import axios from "axios";

import { Message }from "../../node_modules/element-ui";

import { MessageBox }from '../../node_modules/element-ui';

axios.defaults.withCredentials = true; //意思是携带cookie信息,保持session的一致性

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

axios.defaults.headers.post["Accept"] = "application/json";

function onRespons(res) {

if (res.data.status === -1) {

    Message.error(res.data.msg);

}

if (!res.data.success) {

  if (res.data.code ===880104) {

      MessageBox.alert(res.data.msg, {

            confirmButtonText:'确定'

      }).then(() => {

            location.href = res.data.data;

            sessionStorage.clear();

      }).catch(() => {

            location.href = res.data.data;

            sessionStorage.clear();

      });

  }else {

            Message.error(res.data.msg);

  }

// Promise.reject(res);

//throw res;

    return res;

  } else {

    return res;

  }

}

function onError(error) {

if (error && error.response) {

switch (error.response.status) {

      case 400:

error.message ="请求错误";

        break;

      case 401:

error.message ="未授权,请登录";

        break;

      case 403:

error.message ="拒绝访问";

        break;

      case 404:

error.message =`请求地址出错: ${error.response.config.url}`;

        break;

      case 408:

error.message ="请求超时";

        break;

      case 500:

error.message ="服务器内部错误";

        break;

      case 501:

error.message ="服务未实现";

        break;

      case 502:

error.message ="网关错误";

        break;

      case 503:

error.message ="服务不可用";

        break;

      case 504:

error.message ="网关超时";

        break;

      case 505:

error.message ="HTTP版本不受支持";

        break;

      default:

error.message ="连接出错";

    }

}

// Do something with request error

  Message.error(error.message);

  // console.log(error); // for debug

// Promise.reject(error);

  throw error;

  // return error;

}

// create an axios instance

const apiService = axios.create({

// baseURL: '/service' // api的base_url

  baseURL:"/" // api的base_url

// timeout: 5000, // request timeout

});

apiService.interceptors.response.use(

res =>onRespons(res),

  error =>onError(error)

);

export default apiService;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.引入如下两个文件 2.文件地址https://gitee.com/mayunzpf/vue-axios-get...
    AF_DEM阅读 4,046评论 0 2
  • 安装依赖 安装axios npm i axios 安装qs npm i qs 封装 【utils/request....
    瞌睡大伯父阅读 5,583评论 3 17
  • 公司项目要求用H5写 作为一个iOS菜鸟搞起来啊,首先是搭建项目框架,项目框架直接用vue-cli搭建好,接下来是...
    千里111阅读 5,074评论 0 3
  • axios是一个promise实现的http库,符合最新的ES规范。我们为啥要用这个东西呢,主要有以下几个原因: ...
    我是你班主任阅读 24,487评论 28 44
  • 1 都说诗里无江湖 因为诗碍于篇幅 写不清 江湖的儿女情长 写不清 江湖的剑戟刀枪 写不出 大漠的冷月孤峰 写不出...
    梦里的眼睛阅读 4,748评论 24 38