axios的特点与使用_解决处理axios兼容性问题

时间: 2018-04-10阅读: 9011标签: axios

一、简介

“Promise based HTTP client for the browser and node.js” ,译:基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用。


二、特点:

1、在浏览器中发送 XMLHttpRequests 请求;
2、在 node.js 中发送 http请求;
3、支持 Promise API;
4、拦截请求和响应;
5、转换请求和响应数据
6、自动转换 JSON 数据
7、客户端支持保护安全免受 XSRF 攻击;


三、安装

//命令行安装
npm install --save axios
//在所需要的组件中引入
import axios from 'axios';

当然也可以用script引入

<script src="/axios.min.js"></script>


四、应用

1、发送一个get请求

axios.get('/welfare', {
  params: {
  giftPackId: 1
  }
 })
 .then(function(res) {
  console.log(res);
 })
 .catch(function (res) {
  console.log(res);
 });

2、发送一个post请求

axios.post('/welfare', {
     giftPackId: 1
  })
  .then(function (res) {
    console.log(res);
  })
  .catch(function (res) {
    console.log(res);
  });

3、发送多个并发请求

function getUserAccount() {
  return axios.get('/welfare');
}
 
function getUserPermissions() {
  return axios.get('/getWelfare');
}
 
axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // ok
  }));

4、除此之外axios还提供还有如下几种请求方式:

axios.request(config)
 
axios.get(url[, config])
 
axios.delete(url[, config])
 
axios.head(url[, config])
 
axios.post(url[, data[, config]])
 
axios.put(url[, data[, config]])
 
axios.patch(url[, data[, config]])


五、兼容性处理

项目中发现,在安卓4.3及以下的手机不支持axios的使用,主要就是无法使用promise。加上以下polyfill就可以了。

项目中安装es6-promise

cnpm install es6-promise --save-dev

在axios.min.js开头加上

require('es6-promise').polyfill();
站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/611

vue项目封装axios请求拦截器

拦截每一次你的请求和响应,然后进行对应的处理。比如一些网站过了一定的时间不进行操作,就会退出登录让你重新登陆页面,当然这不用拦截器你或许也可以完成这功能,但是会很麻烦,而且代码会产生大量重复

axios请求失败自动重发

一般而言只要谈到异步,通常提到回调函数。JS里的Promise是一个强大的回调函数管理器。本文的实现方案正是利用了Promise的特性,在接口无权限时

vue中axios请求的封装

发送请求模块目录,@/api/url中存放的是每个模块的URL,使用webpack提供的require.context将src/api/url下后缀为js的所有文件引入,并整理出一个对象。整合common.js & product.js,最终得到的对象如下:

vue使用axios实现excel文件下载的实现

前端VUE页面上的导出或者下载功能,一般是调用后端的一个接口,由接口生成excel,word这些文件的流信息,返回给vue,然后由vue去构建下载的动作,这边整理了一下,封装了一下,方便以后复用

网络模块axios的简单应用

例子中使用到的url仅作为示例,不一定有效,想要复现代码需要使用能够提供数据的有效服务器接口url,axios:ajax i/o system;是用于在Vue.js中发送网络请求的第三方框架;可通过许多方式发送网络请求比如:

axios基于常见业务场景的二次封装

axios的二次封装,功能实现:1.兼容ie浏览器避免缓存2.减少或更新重复请求3.接口域名使用环境变量4.全局loading状态5.可关闭的全局错误提醒6.可开启携带全局分页参数

Vue中axios的封装

axios 是 Vue 官方推荐的一个 HTTP 库,用 axios 官方简介来介绍它,就是:Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。作为一个优秀的 HTTP 库,axios 打败了曾经由 Vue 官方团队维护的 vue-resource

如何实现 axios 的自定义适配器 adapter

我们想基于 axios 扩展一些自己的数据请求方式(例如 mock 数据,某些 APP 内专属的数据请求方式等),并能够使用上 axios 提供的便捷功能,该怎么自定义一个适配器 adapter

封装属于自己的axios请求

axios是一个基于promise的HTTP库,可以用于浏览器中进行AJAX请求处理。在项目中,为了实现通用性,封装了一个axios请求。

axios 拦截器显示和关闭Loading

使用Loading分为2种情况,第一种是使用一些组件库自带的loading,另一种是使用我们自己写的loading,现分开介绍使用方法。使用element ui 带的Loading

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!