zoukankan      html  css  js  c++  java
  • yb课堂 基于浏览器和node.js的http客户端Axios 《三十四》

    什么是Axios

    • 基于promise用于浏览器和node.js的http客户端
      • 支持浏览器和node.js
      • 支持Promise API
      • 支持拦截请求和响应
      • 支持转换请求和响应数据
      • JSON数据的自动转换
      • 客户端支持已防止XSRF
    • 官方文档地址:http://www.axios-js.com/zh-cn/docs/

    安装 cnpm install axios

    GET请求例子

    // 为给定 ID 的 user 创建请求
    axios.get('/user?ID=12345')
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
    
    // 上面的请求也可以这样做
    axios.get('/user', {
        params: {
          ID: 12345
        }
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });

    POST请求例子

    axios.post('/user', {
        firstName: 'Fred',
        lastName: 'Flintstone'
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });

    执行多个并发请求

    function getUserAccount() {
      return axios.get('/user/12345');
    }
    
    function getUserPermissions() {
      return axios.get('/user/12345/permissions');
    }
    
    axios.all([getUserAccount(), getUserPermissions()])
      .then(axios.spread(function (acct, perms) {
        // 两个请求现在都执行完成
      }));

    使用axios封装请求后端api接口

    在src下创建Request.js

    Request.js

    import axios from 'axios'
    
    const service=axios.create({
        // url=base url+request url
        baseURL:"http://127.0.0.1:8081",
        //配置请求超时时间
        timeout:5000
    })
    //全局导出
    export default service

    在src下创建api文件夹

    在src/api下创建getData.js

    import axios from '../Request'
    
    //注册接口
    export const registerApi = (name, phone, pwd) => axios.post("/api/v1/pri/user/register", {
        name,
        phone,
        pwd
    })
    
    //登陆接口
    export const loginApi = (phone, pwd) => axios.post("/api/v1/pri/user/login", {
        "phone": phone,
        "pwd": pwd
    })
    
    //轮播图
    export const getBanner = () => axios.get("/api/v1/pub/video/list_banner")
    
    //视频列表
    export const getVideoList = () => axios.get("/api/v1/pub/video/list")
    
    //视频详情
    export const getVideoDetail = (vid) => axios.get("/api/v1/pub/video/find_detail_by_id", {
        params: {
            video_id: vid
        }
    })
    
    //下单接口
    export const saveOrder = (token, vid) => axios.post("/api/v1/pri/order/save", {
        "video_id": vid
    }, {
        headers: {
            "token": token
        }
    })
    
    //订单列表
    export const getOrderList = (token) => axios.get("/api/v1/pri/order/list", {
        params: {
            "token": token
        }
    })
    
    //用户信息接口
    export const getUserInfo = (token) => axios.get("/api/v1/pri/user/find_by_token", {
        params: {
            "token": token
        }
    })

    项目结构

    作者:陈彦斌

    个性签名:没有学不会的技术,只有不学习的人!
    联系方式:543210188(WeChat/QQ),推荐WeChat
  • 相关阅读:
    Codeforces Round #564 (Div. 1)
    Codeforces Round #569 (Div. 1)
    SDOI2019R2游记
    BZOJ 3555: [Ctsc2014]企鹅QQ
    SDOI2019R1游记
    计数的一些东西
    多项式的各种操作
    BZOJ 5424: 烧桥计划
    Codeforces Round #545 (Div. 1)
    概率期望学习笔记
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/13339670.html
Copyright © 2011-2022 走看看