详解axios 全攻略之基本介绍与使用(GET 与 POST)


Posted in Javascript onSeptember 15, 2017

axios

axios 是一个基于 Promise 的 HTTP 客户端,专门为浏览器和 node.js 服务

Vue 2.0 官方推荐使用 axios 来代替原来的 Vue request,所以这里介绍一下 axios 的功能和基本的使用方法,希望能够对各位所有帮助。^_^

功能

  • 在浏览器中发送 XMLHttpRequests 请求
  • 在 node.js 中发送 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • 自动转换 JSON 数据格式
  • 客户端支持防范 XSRF 攻击

浏览器支持

axios 能够支持 IE7 以上的 IE 版本,同时能够支持大部分主流的浏览器,需要注意的是,你的浏览器需要支持 Promise,才能够使用 axios。所以比较好的做法是先安装 polyfill,然后再使用 axios。

安装

Using npm:

$ npm install axios

Using bower:

$ bower install axios

Using cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

使用

这里以 Vue 为例:在 NPM 中安装 axios 之后,需要在 main.js 文件中引用 package

import axios from 'axios'

然后全局绑定

Vue.prototype.$http = axios

然后可以在 .vue 文件中使用 $http 来代替 axios

GET

// Make a request for a user with a given ID 
axios.get('/user?ID=12345')
 .then(function (response) {
  console.log(response);
 })
 .catch(function (error) {
  console.log(error);
 });

// Optionally the request above could also be done as 
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) {
  // Both requests are now complete 
 }));

当然,axios 的功能还包括 axios API、interceptor 等等,这里想要详细了解的可以查看官方文档:axios,后面陆续会介绍下 interceptor 的使用和各类参数的配置。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个刚完成的layout(拖动流畅,不受iframe影响)
Aug 17 Javascript
JS实现可改变列宽的table实例
Jul 02 Javascript
jquery实现树形二级菜单实例代码
Nov 20 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
一个仿糯米弹框效果demo
Jul 22 Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 Javascript
基于d3.js实现实时刷新的折线图
Aug 03 Javascript
关于微信jssdk实现多图片上传的一点心得分享
Dec 13 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
解决vue无法设置滚动位置的问题
Oct 07 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
js实现简单的日历显示效果函数示例
Nov 25 Javascript
Node.js实现连接mysql数据库功能示例
Sep 15 #Javascript
vue实现登陆登出的实现示例
Sep 15 #Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 #Javascript
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 #jQuery
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 #Javascript
vue用addRoutes实现动态路由的示例
Sep 15 #Javascript
Vue渲染函数详解
Sep 15 #Javascript
You might like
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
javascript demo 基本技巧
2009/12/18 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
vue之数据交互实例代码
2017/06/20 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python中Numpy mat的使用详解
2019/05/24 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
如何学习Python time模块
2020/06/03 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
python属于解释型语言么
2020/06/15 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
物流仓储实习自我鉴定
2013/09/25 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
毕业生自荐书
2014/02/03 职场文书
服务员岗位责任制
2014/02/11 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
新闻稿件写作范文
2015/07/18 职场文书
大学学生会竞选稿
2015/11/19 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python