VUE 更好的 ajax 上传处理 axios.js实现代码


Posted in Javascript onMay 10, 2017

vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法。

首先就是引入axios,如果你使用es6,只需要安装axios模块之后

import axios from 'axios';
//安装方法
npm install axios
//或
bower install axios

当然也可以用script引入

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

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]])

这里的config是对一些基本信息的配置,比如请求头,baseURL,当然这里提供了一些比较方便配置项

//config
import Qs from 'qs'
{
 //请求的接口,在请求的时候,如axios.get(url,config);这里的url会覆盖掉config中的url
 url: '/user',

 // 请求方法同上
 method: 'get', // default
 // 基础url前缀
 baseURL: 'https://some-domain.com/api/',




 transformRequest: [function (data) {
  // 这里可以在发送请求之前对请求数据做处理,比如form-data格式化等,这里可以使用开头引入的Qs(这个模块在安装axios的时候就已经安装了,不需要另外安装)

data = Qs.stringify({});
  return data;
 }],

 transformResponse: [function (data) {
  // 这里提前处理返回的数据

  return data;
 }],

 // 请求头信息
 headers: {'X-Requested-With': 'XMLHttpRequest'},

 //parameter参数
 params: {
  ID: 12345
 },

 //post参数,使用axios.post(url,{},config);如果没有额外的也必须要用一个空对象,否则会报错
 data: {
  firstName: 'Fred'
 },

 //设置超时时间
 timeout: 1000,
 //返回数据类型
 responseType: 'json', // default


}

有了配置文件,我们就可以减少很多额外的处理代码也更优美,直接使用

axios.post(url,{},config)
  .then(function(res){
    console.log(res);
  })
  .catch(function(err){
    console.log(err);
  })
//axios请求返回的也是一个promise,跟踪错误只需要在最后加一个catch就可以了。
//下面是关于同时发起多个请求时的处理

axios.all([get1(), get2()])
 .then(axios.spread(function (res1, res2) {
  // 只有两个请求都完成才会成功,否则会被catch捕获
 }));

最后还是说一下配置项,上面讲的是额外配置,如果你不想另外写也可以直接配置全局

axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

//当然还可以这么配置
var instance = axios.create({
 baseURL: 'https://api.example.com'
});

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

Javascript 相关文章推荐
Javascript日期对象的dateAdd与dateDiff方法
Nov 18 Javascript
ExtJS 入门
Oct 29 Javascript
js中巧用cssText属性批量操作样式
Mar 13 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
javascript ASCII和Hex互转的实现方法
Dec 27 Javascript
angularjs中回车键触发某一事件的方法
Apr 24 Javascript
js 获取html5的data属性实现方法
Jul 28 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
Dec 14 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
Aug 31 Javascript
jQuery实现表格的增、删、改操作示例
Jan 27 jQuery
Vue2.0实现简单分页及跳转效果
Jul 29 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
vuejs2.0子组件改变父组件的数据实例
May 10 #Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 #Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 #Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 #Javascript
You might like
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
Django中使用Celery的教程详解
2018/08/24 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
英国女装网上商店:I Saw It First
2018/10/18 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
遗产继承公证书
2014/04/09 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
护士先进个人总结
2015/02/13 职场文书
不同意离婚代理词
2015/05/23 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏