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 相关文章推荐
基于jQuery的实现简单的分页控件
Oct 10 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
May 31 Javascript
javascript中parentNode,childNodes,children的应用详解
Dec 17 Javascript
js输出阴历、阳历、年份、月份、周示例代码
Jan 29 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
May 27 Javascript
AngularJS ng-repeat数组有重复值的解决方法
Oct 23 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
Vue实现可移动水平时间轴
Jun 29 Javascript
JS前端基于canvas给图片添加水印
Nov 11 Javascript
Vue router安装及使用方法解析
Dec 02 Vue.js
javascript实现随机抽奖功能
Dec 30 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
php常量详细解析
2015/10/27 PHP
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
canvas实现钟表效果
2017/02/13 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
python文件比较示例分享
2014/01/10 Python
Python创建文件和追加文件内容实例
2014/10/21 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
python opencv实现图像配准与比较
2021/02/09 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
Ibatis如何调用存储过程
2015/05/15 面试题
C语言中break与continue的区别
2012/07/12 面试题
移动通信行业实习自我鉴定
2013/09/28 职场文书
致标枪运动员加油稿
2014/02/15 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
PHP RabbitMQ消息列队
2022/05/11 PHP