详解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 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
JS中自定义定时器让它在某一时刻执行
Sep 02 Javascript
jQuery中siblings()方法用法实例
Jan 08 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
Jan 13 Javascript
js注册时输入合法性验证方法
Oct 21 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
Apr 25 Javascript
Vuex新手的理解与使用详解
May 31 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
Jul 18 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
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
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Django 使用logging打印日志的实例
2018/04/28 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
计算机求职信
2013/12/01 职场文书
基层干部十八大感言
2014/01/19 职场文书
女儿十岁生日答谢词
2014/01/27 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
检讨书格式范文
2015/05/07 职场文书
教师师德工作总结2015
2015/07/22 职场文书
导游词之吉林花园山
2019/10/17 职场文书