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 jsonp 使用示例代码
Aug 12 Javascript
jquery ajax,ashx,json的用法总结
Feb 12 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
JavaScript采用递归算法计算阶乘实例
Aug 04 Javascript
使用jQuery获取data-的自定义属性
Nov 10 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
Jul 21 Javascript
JS实现全屏的四种写法
Dec 30 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
Jun 16 Javascript
详解Js里的for…in和for…of的用法
Mar 28 Javascript
JS代码触发事件代码实例
Jan 02 Javascript
Vue基于iview table展示图片实现点击放大
Aug 05 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
在JavaScript中调用php程序
2009/03/09 PHP
总结对比php中的多种序列化
2016/08/28 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
在javascript中关于节点内容加强
2013/04/11 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
深入理解node.js http模块
2018/01/24 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
python基础教程项目三之万能的XML
2018/04/02 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
Python pip使用超时问题解决方案
2020/08/03 Python
python打包多类型文件的操作方法
2020/09/21 Python
python爬虫 requests-html的使用
2020/11/30 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
css3media响应式布局实例
2016/07/08 HTML / CSS
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
军训生自我鉴定范文
2013/12/27 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
功夫熊猫观后感
2015/06/10 职场文书
给领导敬酒词
2015/08/12 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang