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 实现的点击复制代码
Mar 24 Javascript
脚本div实现拖放功能(两种)
Feb 13 Javascript
详解webpack的配置文件entry与output
Aug 21 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
javascript面向对象三大特征之继承实例详解
Jul 24 Javascript
vue vant Area组件使用详解
Dec 09 Javascript
js实现倒计时秒杀效果
Mar 25 Javascript
Websocket 向指定用户发消息的方法
Jan 09 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
JavaScript编写开发动态时钟
Jul 29 Javascript
vue项目打包后路由错误的解决方法
Apr 13 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
Ajax PHP分页演示
2007/01/02 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
jquery实用代码片段集合
2010/08/12 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
python字符串,数值计算
2016/10/05 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
详解Scrapy Redis入门实战
2020/11/18 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
什么是聚集索引和非聚集索引
2012/01/17 面试题
KTV的创业计划书范文
2014/02/02 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
教你利用python实现企业微信发送消息
2021/05/23 Python
Python Django模型详解
2021/10/05 Python