react前后端对接(axios)

全局配置

1  安装axios     npm install axios -S   

2  安装cookie    npm install react-cookies -S

3  src文件目录下新建文件夹api

4  api 下新建statecode.js  //该页面用来返回请求状态
export default  {
    "-1": "系统繁忙",
    "0": "请求成功",
    "1001":	"资源已存在",
    "1002":	"参数错误",
    "1003":	"两次密码不一致",
    "1004":	"手机号错误",
    "1005":	"邮箱格式错误",
}

5  api下新建config.js    //该页面用来设置请求地址
module.exports = {
    base: "http://demo.port.net:8000"
};

6 api下新建index.js   //该页面用来引入并暴露相关接口,相当于接口汇总(每配置一个模块的接口,都要在这里汇总,别忘了)
import codes from './statecode.js';   //状态码
import login from './login.js';    //登录页面
import product from './product.js';   //产品页面
import buy from './buy.js';  //购买页面
 
export default {
    stateCode: codes,
    ...login,
    ...product,
    ...buy,
}

7  api下新建login.js, product.js, buy.js等相关模块的接口页面(这里给post,get,delete等每种请求写一个例子)
import axios from 'axios';  //引入axios
import { base } from "./config.js";  //引入请求地址
import cookie from 'react-cookies';//引入cookie保存登录信息

import {message} from 'antd';

export default {

        //***登录 (POST)*** 
        async loginApi(params){   //我习惯在接口命名时,后面加上Api,这样容易区分
            return await axios.post(`${base}/api/demo/login`,params).then((res)=>{  //登录接口不需要请求头,不仅如此,请求头里的cookie还是由登陆接口的获取的,存储下来后给其他接口使用
                return res.data;
            }).catch((error)=>{
                message.error("服务器出错")
            })
        },


        //***登录后获取用户信息 (GET)***
        async getUserInfoApi(params){
            return await axios.get(`${base}/api/demo/info`,{   //get请求只需要两个参数,所以params和headers放在了一起
                params,
                headers:{
                    "token":cookie.load("usertoken")   //这里的cookie需要在用户登陆后,将接口的返回值存进cookie里,例子在第8步里
                }
            }).then((res)=>{
                return res.data;
            }).catch((error)=>{
                message.error("服务器出错")
            })
        },

        //***修改密码 (POST)***
        async changePasswordApi(params){
            return await axios.post(`${base}/api/demo/modifycode`,params,{
                headers:{
                    "token":cookie.load("usertoken")
                }
            }).then((res)=>{
                return res.data;
            }).catch((error)=>{
                message.error("服务器出错")
            })
        },

        //***获取产品列表 (GET)***
        async productListGetApi(params){
            return await axios.get(`${base}/api/product`,{
                params,
                headers:{
                    "token":cookie.load("usertoken")
                 }
            }).then((res)=>{
                return res.data
            }).catch((error)=>{
                mes
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值