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 Ajax请求代码(2)
Jan 07 Javascript
node.js中的fs.truncate方法使用说明
Dec 15 Javascript
JavaScript中的立即执行函数表达式介绍
Mar 15 Javascript
JavaScript多线程详解
Aug 12 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
Dec 16 Javascript
如何用JS判断两个数字的大小
Jul 21 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 Javascript
深入理解vue-class-component源码阅读
Feb 18 Javascript
js原生map实现的方法总结
Jan 19 Javascript
Vue3不支持Filters过滤器的问题
Sep 24 Javascript
js实现抽奖功能
Nov 24 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创建桌面快捷方式的实例代码
2014/02/17 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
JavaScript 语言的递归编程
2010/05/18 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python读取文件名称生成list的方法
2018/04/27 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
python中添加模块导入路径的方法
2021/02/03 Python
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
什么是makefile? 如何编写makefile?
2013/01/02 面试题
《再见了,亲人》教学反思
2014/02/26 职场文书
异地年检委托书范本
2014/09/24 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
golang定时器
2022/04/14 Golang
5个实用的JavaScript新特性
2022/06/16 Javascript