请求封装

axios

1、封装与拦截

import axios from "axios";
import { Message } from "element-ui";
import router from "@/router";

export const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
});

console.log(process.env["VUE_APP_BASE_API"]);

1.1请求拦截

// 请求拦截
service.interceptors.request.use((config) => {
  console.log(JSON.parse(localStorage.getItem("userInfo")["sessionId"]);
  if (config.method === "get") {
    config.params = {
      sessionId: JSON.parse(localStorage.getItem("userInfo").sessionId,
      ...config.params,
    };
  } else if (config.method === "post") {
    config.params = {
      sessionId: JSON.parse(localStorage.getItem("userInfo").sessionId,
      ...config.params,
    };
  }
  // console.log(config)
  return config;
});

1.2 响应拦截

// 响应拦截
service.interceptors.response.use((success) => {
  console.log(success);
  //  状态码正确
  if (success.status === 200) {
    //  操作正确
    if (success.data.code === 0) {
      return success.data;
    } else if (success.data.code == 401) {
      localStorage.clear();
      Message.error("您的登录信息已过期");
      router.push("/Login");
    }
    // 操作错误
    else {
      Message.error(success.data.message);
      return success.data;
    }
  } else {
    Message.error("响应错误");
  }
});

uniapp

2、request 请求封装

export const post_data = function (url, data) {
  return new Promise(function (resolve, reject) {
    uni.request({
      url: url,
      method: "POST",
      header: {
        version_code: "2022011101",
        version_name: "V1.0.0",
        app_type: 5,
        channel: "miniprogram",
        user_id: "5",
        user_token: "1",
        "content-type": "application/x-www-form-urlencoded", //默认传输json格式,如果后台接收的不是json格式,需要加上
      },
      data: data,
      success(res) {
        // 如果成功,符合预期
        if (res.data.code == 0) {
          console.log(res);
          resolve(res.data.data);
        } else {
          // resolve(res.data)
          console.log(url, res.data.msg);
          uni.showToast({
            title: res.data.msg,
            duration: 2000,
            icon: "none",
          });
        }
      },
      fail() {
        console.log(url, "接口请求失败");
        reject();
      },
    });
  });
};