详解axios在vue中的简单配置与使用


Posted in Javascript onMay 10, 2017

一、axios 简介

axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:

  • 从浏览器中创建 XMLHttpRequest
  • 从 node.js 发出 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • 自动转换JSON数据
  • 客户端支持防止 CSRF/XSRF

二、引入方式:

npm:

$ npm install axios
//淘宝源
$ cnpm install axios

bower:

$ bower install axios

cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

三、vue中axios的配置

之前那个开源项目一开始就打算用axios,在网上找了好多文章与攻略,发现好多都不太详细,所以打算自己动手配置一个,(不要怂,撸起袖子就是干)。

我的配置:

import axios from 'axios'
import qs from 'qs'
import * as _ from '../util/tool'
axios.defaults.timeout = 5000;            //响应时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';      //配置请求头
axios.defaults.baseURL = '你的接口地址';  //配置接口地址
//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {
 //在发送请求之前做某件事
  if(config.method === 'post'){
    config.data = qs.stringify(config.data);
  }
  return config;
},(error) =>{
   _.toast("错误的传参", 'fail');
  return Promise.reject(error);
});
//返回状态判断(添加响应拦截器)
axios.interceptors.response.use((res) =>{
 //对响应数据做些事
  if(!res.data.success){
    // _.toast(res.data.msg);
    return Promise.reject(res);
  }
  return res;
}, (error) => {
  _.toast("网络异常", 'fail');
  return Promise.reject(error);
});
//返回一个Promise(发送post请求)
export function fetch(url, params) {
  return new Promise((resolve, reject) => {
    axios.post(url, params)
      .then(response => {
        resolve(response.data);
      }, err => {
        reject(err);
      })
      .catch((error) => {
        reject(error)
      })
  })
}

四、vue中使用配置好的axios

export default {
  /**
   * 用户登录
   */
  Login(params) {
    return fetch('/users/api/userLogin', params)
  }, 
  /**
   * 用户注册
   */
  Regist(params) {
    return fetch('/users/api/userRegist', params)
  },
  /**
   * 发送注册验证码
   */
  RegistVerifiCode(tellphone) {
    return fetch('/users/api/registVerifiCode', {tellphone: tellphone})
  },
  ......
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript tips提示框组件实现代码
Nov 19 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
详解JavaScript设计模式开发中的桥接模式使用
May 18 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
Dec 17 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
Vue项目打包部署到apache服务器的方法步骤
Feb 01 Vue.js
javascript Number 与 Math对象的介绍
Nov 17 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 #jQuery
JavaScript实现form表单的多文件上传
Mar 27 #Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
May 10 #Javascript
利用PM2部署node.js项目的方法教程
May 10 #Javascript
全面解析vue中的数据双向绑定
May 10 #Javascript
利用forever和pm2部署node.js项目过程
May 10 #Javascript
javascript简单链式调用案例分析
May 10 #Javascript
You might like
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
限制复选框的最大可选数
2006/07/01 Javascript
javascript编程起步(第四课)
2007/02/27 Javascript
执行iframe中的javascript方法
2008/10/07 Javascript
js获取提交的字符串的字节数
2009/02/09 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
媒体宣传策划方案
2014/05/25 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python