详解vue中axios的封装


Posted in Javascript onJuly 18, 2018

第一步还是先下载axios

cnpm install axios -S

第二步建立一个htttp.js

import axios from 'axios';
import { Message } from 'element-ui';

axios.defaults.timeout = 5000;
axios.defaults.baseURL ='';


//http request 拦截器
axios.interceptors.request.use(
 config => {
  // const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie
  config.data = JSON.stringify(config.data);
  config.headers = {
   'Content-Type':'application/x-www-form-urlencoded'
  }
  // if(token){
  //  config.params = {'token':token}
  // }
  return config;
 },
 error => {
  return Promise.reject(err);
 }
);


//http response 拦截器
axios.interceptors.response.use(
 response => {
  if(response.data.errCode ==2){
   router.push({
    path:"/login",
    querry:{redirect:router.currentRoute.fullPath}//从哪个页面跳转
   })
  }
  return response;
 },
 error => {
  return Promise.reject(error)
 }
)


/**
 * 封装get方法
 * @param url
 * @param data
 * @returns {Promise}
 */

export function fetch(url,params={}){
 return new Promise((resolve,reject) => {
  axios.get(url,{
   params:params
  })
  .then(response => {
   resolve(response.data);
  })
  .catch(err => {
   reject(err)
  })
 })
}


/**
 * 封装post请求
 * @param url
 * @param data
 * @returns {Promise}
 */

 export function post(url,data = {}){
  return new Promise((resolve,reject) => {
   axios.post(url,data)
     .then(response => {
      resolve(response.data);
     },err => {
      reject(err)
     })
  })
 }

 /**
 * 封装patch请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function patch(url,data = {}){
 return new Promise((resolve,reject) => {
  axios.patch(url,data)
     .then(response => {
      resolve(response.data);
     },err => {
      reject(err)
     })
 })
}

 /**
 * 封装put请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function put(url,data = {}){
 return new Promise((resolve,reject) => {
  axios.put(url,data)
     .then(response => {
      resolve(response.data);
     },err => {
      reject(err)
     })
 })
}

第三步

在main.js中引入

import axios from 'axios'
import {post,fetch,patch,put} from './utils/http'
//定义全局变量
Vue.prototype.$post=post;
Vue.prototype.$fetch=fetch;
Vue.prototype.$patch=patch;
Vue.prototype.$put=put;

最后在组件里直接使用

mounted(){
  this.$fetch('/api/v2/movie/top250')
   .then((response) => {
    console.log(response)
   })
 },

其余的方法一样
Javascript 相关文章推荐
jQuery为iframe的body添加click事件的实现代码
Apr 07 Javascript
JavaScript网页定位详解
Jan 13 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
JavaScript跨域方法汇总
Oct 16 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
PageSwitch插件实现100种不同图片切换效果
Jul 28 Javascript
JS去除空格和换行的正则表达式(推荐)
Jun 14 Javascript
详谈表单重复提交的三种情况及解决方法
Aug 16 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
vue+Element-ui实现分页效果实例代码详解
Dec 10 Javascript
深入学习js函数的隐式参数 arguments 和 this
Jun 24 Javascript
JavaScript 空间坐标的使用
Aug 19 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
Jul 18 #Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 #Javascript
使用Vue实现图片上传的三种方式
Jul 17 #Javascript
vue的token刷新处理的方法
Jul 17 #Javascript
vue 权限认证token的实现方法
Jul 17 #Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 #Javascript
详解webpack import()动态加载模块踩坑
Jul 17 #Javascript
You might like
如何使用PHP中的字符串函数
2006/11/24 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
javascript 闭包疑问
2010/12/30 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
用Python解决计数原理问题的方法
2016/08/04 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
利用python画出折线图
2018/07/26 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
英国床垫在线:Mattress Online
2016/12/07 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
教师学习培训邀请函
2014/02/04 职场文书
大学军训感言600字
2014/02/25 职场文书
春节联欢会主持词
2014/03/24 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
领导欢迎词致辞
2015/01/23 职场文书
2015毕业寄语大全
2015/02/26 职场文书
初三语文教学反思
2016/03/03 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技