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获取地址栏参数
Dec 22 Javascript
js 小数取整的函数
May 10 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
JavaScript避免代码的重复执行经验技巧分享
Apr 17 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
整理Javascript事件响应学习笔记
Dec 02 Javascript
js 实现省市区三级联动菜单效果
Feb 20 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
JS实现浏览上传文件的代码
Aug 23 Javascript
浅谈js中的this问题
Aug 31 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
vue各种事件监听实例(小结)
Jun 24 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
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
决策树的python实现方法
2014/11/18 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
python设置值及NaN值处理方法
2018/07/03 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
关于圣诞节的广播稿
2014/01/26 职场文书
预防传染病方案
2014/06/14 职场文书
五年级学生期末评语
2014/12/26 职场文书
毕业论文致谢词
2015/05/14 职场文书
葬礼主持词
2015/07/02 职场文书
计算机教师工作总结
2015/08/13 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
浅析Python中的套接字编程
2021/06/22 Python