axios二次封装get和post

1. request.ts 

import axios, { AxiosInstance, AxiosResponse } from 'axios';

const request = axios.create({
    baseURL: '/api'
});

// 添加请求拦截器
request.interceptors.request.use(function (config) {
    return config;
}, function (error) {
    return Promise.reject(error);
});


// 添加响应拦截器
request.interceptors.response.use(function (response) {
    return response;
}, function (error) {
    return Promise.reject(error);
});

const http = {
    get<T>(url: string, params?: any, config?: {}): Promise<T> {
      return new Promise((resolve, reject) => {
        request
          .get<T>(url, { params,...config } )
          .then((res: AxiosResponse<T>) => {
            resolve(res.data);
          })
          .catch((error) => {
            reject(error);
          });
      });
    },
    post<T>(url: string, data?: any, config?: {}): Promise<T> {
      return new Promise((resolve, reject) => {
        request
          .post<T>(url, data, config)
          .then((res: AxiosResponse<T>) => {
            resolve(res.data);
          })
          .catch((error) => {
            reject(error);
          });
      });
    },  
};
  
export default http;

api文件:

import http from "@utils/request";
import { UserRuleForm , PhoneCodeForm , PhoneRuleForm } from '@interface/login'

interface ILoginRequest{
	code:string
	msg:string
	data?:string | null
}

//图形验证码
export const captchaImage = ( data:{
	key:string
} ):Promise<ArrayBuffer>=>{
	return http.get<ArrayBuffer>('接口地址',data,{responseType:'arraybuffer'});
}

//用户登录
export const loginByJson = ( data:UserRuleForm ):Promise<ILoginRequest>=>{
    return http.post<ILoginRequest>('接口地址',data)
}

//登录动态验证码
export const loginCaptcha = ( data:PhoneCodeForm ):Promise<ILoginRequest>=>{
    
	return http.get<ILoginRequest>('接口地址',data)

}

//手机验证码登录
export const loginByMobile = ( data:PhoneRuleForm ):Promise<ILoginRequest>=>{
    return http.post<ILoginRequest>('接口地址',data)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值