React中使用axios并将其进行简单的封装

使用npm 或者 cnpm 下载axios

cnpm install axiso --save

ajax.js

/**
 * 发送异步ajax请求的函数模块
 * 封装axios库
 * 函数的返回值是promise对象
 * 优化:统一处理请求异常
 *  在外层包一个自己创建的promise对象
 *  在请求出错时,不去reject(error),而是显示错误信息,并返回
 * 优化2:异步得到的不是response,而是response.data
 *  在请求成功resolve时:直接resolve(response.data)
 */

import axios from 'axios'
import {message} from 'antd'

export default function ajax(url, data = {}, type = 'GET') {
    return new Promise((resolve,reject) => {
        let promise;
        //1,执行异步ajax请求
        if (type === 'GET') {//发送get请求
            promise = axios.get(url,{
                params: data
            })
        } else {//发送POST请求
            promise = axios.post(url,data);
        }
        promise.then(response => {
            //2.如果成功,调用resolve(value)
            resolve(response.data);
        }).catch(error => {
            //3.如果失败了,不调用reject(reason),而是提示异常信息
            message.error('请求出错:',error.message);
            resolve(error.message);
        })
    });
}

这样将请求数据和返回数据或者错误进行统一处理,

//获取商品分页列表
export const reqProducts = (pageNum, pageSize) => ajax(BASE + '/manage/product/list', {pageNum, pageSize});

//更新商品的状态
export const reqUpdateStatus = (productId,status) => ajax(BASE+'/manage/product/updateStatus',{productId,status},'POST');

GET 和POST请求都可以比较简便的进行处理

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值