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的控件及事件(输入控件及回车事件)使用示例
Jul 25 Javascript
javascript搜索框点击文字消失失焦时文本出现
Sep 18 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
javascript基础语法——全面理解变量和标识符
Jun 02 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
Dec 31 Javascript
js 判断数据类型的几种方法
Jan 13 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
Apr 20 Javascript
Vue源码解读之Component组件注册的实现
Aug 24 Javascript
如何使用vuex实现兄弟组件通信
Nov 02 Javascript
Vue开发之封装上传文件组件与用法示例
Apr 25 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
Aug 16 Javascript
JS实现商品橱窗特效
Jan 09 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
apache和PHP如何整合在一起
2015/10/12 PHP
php读取torrent种子文件内容的方法(测试可用)
2016/05/03 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
PHP 断点续传实例详解
2017/11/11 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
Python中的类学习笔记
2014/09/23 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
车间主任岗位职责
2014/03/16 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书