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之水平横向滚动歌词同步的应用
May 07 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
解析Javascript中大括号“{}”的多义性
Dec 02 Javascript
页面实时更新时间的JS实例代码
Dec 18 Javascript
js实现俄罗斯方块小游戏分享
Jan 31 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
简述jQuery ajax的执行顺序
Jan 05 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
May 17 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
微信小程序合法域名配置方法
May 06 Javascript
微信小程序sessionid不一致问题解决
Aug 30 Javascript
uin-app+mockjs实现本地数据模拟
Aug 26 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与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
浅谈JavaScript函数的四种存在形态
2016/06/08 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
jQuery实现手风琴特效
2021/01/11 jQuery
Python格式化css文件的方法
2015/03/10 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
python自动12306抢票软件实现代码
2018/02/24 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
python操作toml文件的示例代码
2020/11/27 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
中专毕业自我鉴定
2013/10/16 职场文书
个人思想理论学习的自我鉴定
2013/11/30 职场文书
教师求职信范文分享
2013/12/27 职场文书
法人任命书范本
2014/06/04 职场文书
学雷锋标语
2014/06/25 职场文书
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python