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 相关文章推荐
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
Jan 16 Javascript
JavaScript 密码强度判断代码
Sep 05 Javascript
三种方式获取XMLHttpRequest对象
Apr 21 Javascript
js的Prototype属性解释及常用方法
May 08 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
May 11 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
JS函数的定义与调用方法推荐
May 12 Javascript
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
Vue源码解读之Component组件注册的实现
Aug 24 Javascript
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 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设计模式 php实现合成模式(composite)
2015/12/08 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
python根据路径导入模块的方法
2014/09/30 Python
RC4文件加密的python实现方法
2015/06/30 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
python三引号输出方法
2019/02/27 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
最小二乘法及其python实现详解
2020/02/24 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
机电一体化自荐信
2013/12/10 职场文书
最新个人职业生涯规划书
2014/01/22 职场文书
货车司机岗位职责
2014/03/18 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python