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实现仿Windows关机效果
Mar 10 Javascript
JQuery 实现的页面滚动时浮动窗口控件
Jul 10 Javascript
JavaScript 函数replace深入了解
Mar 14 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
Nov 10 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 Javascript
JQuery异步提交表单与文件上传功能示例
Jan 12 Javascript
完美实现js拖拽效果 return false用法详解
Jul 28 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
Sep 21 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
Vue之封装公用变量以及实现方式
Jul 31 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/07 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
使javascript也能包含文件
2006/10/26 Javascript
javascript css styleFloat和cssFloat
2010/03/15 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
JavaScript如何操作css
2020/10/24 Javascript
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020/01/14 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
桥梁工程专业求职信
2014/04/21 职场文书
教师见习总结范文
2015/06/23 职场文书
Python入门学习之类的相关知识总结
2021/05/25 Python