axios请求封装,适用于RN,React,Vue,Uniapp(相对于前面几个新增个自定义header头)

axios.js

import axios from "axios";
const instace = axios.create({
  baseURL: "https://internal.takehr.cn", //接口地址
  timeout: 5000, //超时时间
});
//配置请求拦截器,在请求之前的数据处理,比如在请求头添加token,所有的请求都会经过拦截器
instace.interceptors.request.use(
  //config:该参数表示当前请求的配置对象
  (config) => {
    return config;
  },
  (err) => {
    return Promise.reject(err); //将错误消息挂到promise的失败函数上
  }
);

//配置响应拦截器
// 响应拦截器:在请求响应之后对数据处理,比如:登录失败、请求数据失败的处理
instace.interceptors.response.use(
  (response) => {
    console.log("response", {
      response: response.data, // 响应的结果数据
      parameter: {
        url: response.config.url,  // 请求的接口地址
        // headers:{
          // token:response.config.headers.token  // headers头的参数信息
          // ... 下面可以添加其他headers头里面的参数
        // },
        data: JSON.parse(response.config.data),  // 请求携带的请求参数信息
      },
    }); // 参数一是响应的数据,参数二是携带的参数和请求的url路径信息
    return response.data; //这里的response就是请求成功后的res , response.data即是请求成功后回调函数内的参数res.data
  },
  (err) => {
    console.log("err", {
      err: err.response.data,  // 请求的错误信息
      parameter: {
        url: err.response.config.url, // 请求的接口地址
        // headers:{
          // token:err.response.config.headers.token // headers头的参数信息
          // ... 下面可以添加其他headers头里面的参数
        // },
        data: JSON.parse(err.response.config.data),  // 请求携带的请求参数信息
      },
    }); // 参数一是响应的数据,参数二是携带的参数和请求的url路径信息
    return Promise.reject(err); //将错误消息挂到promise的失败函数上
  }
);

//封装请求的api
const callapi = (method = "GET", url, data = {}, customHeaders = {}) => {
  if (method === "GET") {
    return instace({
      method,
      url,
      params: data,
      ...customHeaders,
    });
  } else {
    return instace({
      method,
      url,
      params: {},
      data: data,
      ...customHeaders,
    });
  }
};
//封装GET,POST请求函数
export const getapi = (url, data, customHeaders) =>
  callapi("GET", url, data, customHeaders);
export const postapi = (url, data, customHeaders) =>
  callapi("POST", url, data, customHeaders);

index.js

import {getapi, postapi} from './axios';
export const login = data => postapi('/api/v1.login/signin', data); // 用户登录
export const register = data => postapi('/api/v1.login/signup', data); // 用户注册
export const SendVerificationCode = data => postapi('/api/v1.login/vertiy', data); // 使用邮箱验证码登录
export const validateResetPasswordEmail = data =>  postapi('/api/v1.login/findaccount', data); // 忘记密码邮箱校验
export const forgetPassword = data => postapi('/api/v1.login/resetPwd', data); // 忘记密码
export const photo = (data, customHeaders) => postapi('/api/upload/image', data, customHeaders);

使用

import { postapi } from './index.js'

// 参数一:请求参数
// 参数二:配置请求header头
postapi({name:Jack},{headers:{config:'...'}}).then((res)=>{
	console.log(res)
})
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧寂173

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值