vue中axios的封装问题(简易版拦截,get,post)


Posted in Javascript onJune 15, 2018

第一步还是先下载axios

npm install axios --save

第二步/src/utils/目录下建立一个htttp.js

import axios from 'axios';
axios.defaults.timeout = 5000;
axios.defaults.baseURL ='';
//http request 拦截器
axios.interceptors.request.use(
 config => {
  // const token = getCookie('名称');
  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)
     })
  })
 }

第三步

在main.js中引入

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

最后在组件里直接使用

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

其余的方法一样

总结

以上所述是小编给大家介绍的vue中axios的封装问题(简易版拦截,get,post),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
页面加载完毕后滚动条自动滚动一定位置
Feb 20 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
jquery实现的用户注册表单提示操作效果代码分享
Aug 28 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
Sep 19 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
JS添加或删除HTML dom元素的方法实例分析
Mar 05 Javascript
vue+django实现一对一聊天功能的实例代码
Jul 17 Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 Javascript
ng-alain的sf如何自定义部件的流程
Jun 12 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 #Javascript
webpack公共组件引用路径简化小技巧
Jun 15 #Javascript
微信小程序自定义tab实现多层tab嵌套功能
Jun 15 #Javascript
微信小程序实现自定义modal弹窗封装的方法
Jun 15 #Javascript
详解vue组件开发脚手架
Jun 15 #Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 #Javascript
vue cli 3.0 使用全过程解析
Jun 14 #Javascript
You might like
PHP获取表单textarea数据中的换行问题
2010/09/10 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
smarty简单入门实例
2014/11/28 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
初识Node.js
2015/03/20 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python判断操作系统类型代码分享
2014/11/22 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
python基础梳理(一)(推荐)
2019/04/06 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python 实现的车牌识别项目
2021/01/25 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
上班迟到检讨书范文300字
2014/11/02 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python