什么是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
}
})

项目结构

yb课堂 基于浏览器和node.js的http客户端Axios 《三十四》的更多相关文章

  1. 基于promise用于浏览器和node.js的http客户端的axios

    axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: 从浏览器中创建 XMLHttpRequest 从 node.js 发出 http 请求 支 ...

  2. JS基础入门篇(三十四)— 面向对象(一)

    1.对象 对象的定义 : 对象 是 由 键值对 组成的无序集合. 创建对象两种方法 : 方法一 : 字面量方法 var obj = {name: "k"}; 方法二 : new O ...

  3. JS基础入门篇(三十五)—面向对象(二)

    如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)

  4. iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备

    安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await ...

  5. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分 ...

  6. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源

    视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...

  7. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 视图Nunjucks

    视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据 ...

  8. 基于 Koa平台Node.js开发的KoaHub.js的控制器,模型,帮助方法自动加载

    koahub-loader koahub-loader是基于 Koa平台Node.js开发的KoaHub.js的koahub-loader控制器,模型,帮助方法自动加载 koahub loader I ...

  9. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...

  10. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON

    视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影. 前面的文章中,我们已经完成了项目中常见的问题,比如 路由 ...

随机推荐

  1. Ubuntu 一直卡在开机界面或者用户登录界面死循环问题的解决

    此方法并不全部通用,根据自己实际情况 建议提前快照再试试此方法 原因:NVIDIA 驱动所致,之前安装方式nvidia驱动出问题. 解决办法:卸载nvidia驱动,重新安装. (1)进入文本模式:CT ...

  2. fastposter v2.9.0 程序员必备海报生成器

    fastposter v2.9.0 程序员必备海报生成器 fastposter海报生成器是一款快速开发海报的工具.只需上传一张背景图,在对应的位置放上组件(文字.图片.二维.头像)即可生成海报. 点击 ...

  3. JDK源码阅读-------自学笔记(八)(数组演示冒泡排序和二分查找)

    冒泡排序 算法 比较相邻的元素.如果第一个比第二个大,就交换他们两个 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数 针对所有的元素重复以上的步骤,除 ...

  4. angualr2+ 性能优化-trackBy

    1.使用trackBy提高性能 为什么使用trackBy进行性能优化,在平时的开发中,我们对数组的处理基本都是通过接口获取新的数组进行替换或push,但是在这个过程中,Angular不知道你是要做什么 ...

  5. zabbix笔记_005 zabbix自动发现

    自动发现 [消耗资源较大] 1.1 自动发现监控主机 自动发现的好处: 快速发现,并自动添加主机,省去管理员配置的麻烦. 管理简单高效 zabbix监控构建速度更高效 1.2 自动发现的原理 自动发现 ...

  6. 音视频-YUV数据格式

    一.YUV格式 1)kCVPixelFormatType_420YpCbCr8PlanarFullRange = 'f420' 对应YUV I420格式 2)kCVPixelFormatType_42 ...

  7. vue单个插槽

    当子组件模板只有一个没有属性的插槽时,父组件传入的整个内容片段将插入到插槽所在的 DOM 位置,并替换掉插槽标签本身. # 子组件 <div> <h2>我是子组件的标题< ...

  8. ETL工具-nifi干货系列 第十八讲 nifi Funnel实战教程

    1.Funnel (漏斗),Funnel是 NiFi 组件,用于将多个连接中的数据合并到一个连接中. 使用场景:nifi中的Funnel组件用于合并多个数据流并将它们传递到下游处理器.它可以将来自不同 ...

  9. INTEL S4500 960G 入手评测

    INTEL S4500 960G 入手评测 简易上个图: CDI AS SSD: CDM: AS SSD AND CDM: -

  10. 从pfx私钥证书中提取私钥

    要准备openssl win 32 del /Q c:\mch_private2.pem c:\OpenSSL-Win32\bin\openssl.exe pkcs12 -in c:\mch_priv ...