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 相关文章推荐
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
jQuery UI 实现email输入提示实例
Aug 15 Javascript
jquery遍历checkbox介绍
Feb 21 Javascript
JavaScript代码判断点击第几个按钮
Dec 13 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
vue实现未登录跳转到登录页面的方法
Jul 17 Javascript
微信小程序如何使用云开发
May 17 Javascript
微信小程序开发实现消息推送
Nov 18 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
vue项目打包之开发环境和部署环境的实现
Apr 23 Javascript
如何将Node.js中的回调转换为Promise
Nov 10 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中文件下载功能实现超详细流程分析
2012/06/13 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
PHP中cookie知识点学习
2018/05/06 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
javascript parseInt 大改造
2009/09/27 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Python 字符串操作方法大全
2014/03/11 Python
Python实现随机选择元素功能
2017/09/14 Python
python多维数组切片方法
2018/04/13 Python
Python使用gRPC传输协议教程
2018/10/16 Python
python对csv文件追加写入列的方法
2019/08/01 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
京东国际站:JOYBUY
2017/11/23 全球购物
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
大学中国梦演讲稿
2014/04/23 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
2014最新实习证明模板
2014/10/02 职场文书
物业公司管理制度
2015/08/05 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
网络研修心得体会
2016/01/08 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android