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 相关文章推荐
Javascript Function对象扩展之延时执行函数
Jul 06 Javascript
Jquery Uploadify上传带进度条的简单实例
Feb 12 Javascript
JavaScript学习心得之概述
Jan 20 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
Mar 07 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
Jun 06 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
Jun 14 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
Js中使用正则表达式验证输入是否有特殊字符
Sep 07 Javascript
微信小程序实现的一键复制功能示例
Apr 24 Javascript
基于VUE的v-charts的曲线显示功能
Oct 01 Javascript
vue 自定义组件添加原生事件
Apr 21 Vue.js
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四大安全策略
2014/03/12 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
php操作mongoDB实例分析
2014/12/29 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
php中序列化与反序列化详解
2017/02/13 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
简单介绍Ruby中的CGI编程
2015/04/10 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
举例讲解Python装饰器
2020/12/24 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
数据库方面面试题
2012/04/22 面试题
男方婚礼答谢词
2015/01/20 职场文书
邀请函格式范文
2015/02/02 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python