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 相关文章推荐
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
javascript中的throttle和debounce浅析
Jun 06 Javascript
jquery根据锚点offset值实现动画切换
Sep 11 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
Dec 16 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
Jan 09 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
老生常谈的跨域处理
Jan 11 Javascript
细说webpack源码之compile流程-入口函数run
Dec 26 Javascript
vue添加class样式实例讲解
Feb 12 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
JQuery样式与属性设置方法分析
Dec 07 jQuery
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
地摊中国 - 珍藏老照片
2020/08/18 杂记
php curl选项列表(超详细)
2013/07/01 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
JS交换变量的方法
2015/01/21 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
计算机专业毕业生的自我评价
2013/11/18 职场文书
店长职务说明书
2014/02/04 职场文书
销售口号霸气押韵
2015/12/24 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
详解mysql三值逻辑与NULL
2021/05/19 MySQL
CPU不支持Windows11系统怎么办
2021/11/21 数码科技
mysql自增长id用完了该怎么办
2022/02/12 MySQL