vue封装网络请求

1.新增util文件夹
在util文件夹里新增http.js,负责axios的封装

import Vue from "vue";
import axios from "axios";
import { Message } from "element-ui";
const postAxios = (data, resolve, reject) => {
  const request = axios.create({
    // API 请求的默认前缀
    baseURL: "/index",
    timeout: 6000, // 请求超时时间
    headers: {
      "content-type": "application/json",
      token: sessionStorage.getItem("token")
    }
  });
  // 请求拦截器
  if (!data.url) {
    Message.error("请设置请求地址");
  }
  request
    .post(data.url, data.data)
    .then(res => {
      // 响应拦截器
      if (res.status != 200) {
        Message.error(`${res.statusText}服务器出现问题`);
      } else if (res.data.code == 401 && !data.type) {
        Message.error(res.data.msg);
        setTimeout(res => {
          window.location.href = "/#/login";
        }, 1000);
      } else if (res.data.code !== 0 && !data.type) {
        Message.error(res.data.msg);
      }
      resolve(res.data);
    })
    .catch(err => {
      Message.error("404服务器出错");
      reject(err);
    });
};

function _AXIOS(data) {
  return new Promise(function(resolve, reject) {
    postAxios(data, resolve, reject);
  });
}

Vue.prototype.$axios = _AXIOS;

export default _AXIOS;

2.在util.js里新增request_url文件,负责装接口

import Vue from "vue";

const url = {
  0: "/user/login", // 登录
};

Vue.prototype.$url = url;

export default url;

3.在util.js下新增url.js,负责测试环境与正式环境的域名

export const base_url = "https:/xxx/index";
export const base_img_url = "https://xxx/";
export const base_h5_url = "https://xxx/h5";

//  测试
// export const base_url = "http://xxx";
// export const base_img_url = "http:/xxx/";
// export const base_h5_url = "http://xxx/h5";

4.在main.js里引入这两个文件

import "@/utils/http.js"; // 全局注册请求
import "@/utils/request_url.js"; // 全局注册请求接口统一管理

5.在文件就可以直接引用了

this.$axios({
          url: this.$url[35],
          data: {
            dayId: this.day_id,
            test_id: this.task_id
          }
        }).then(res => {
         
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值