vue axios 在页面切换时中断请求方法 ajax


Posted in Javascript onMarch 05, 2018

如下所示:

Vue.prototype.$ajax=axios; 
const CancelToken = axios.CancelToken;
let cancel;
let cancelAjaxText = '中断成功';
Vue.prototype.post = function(url,data,loading){
 	var ajax = Vue.prototype.$ajax({
	   	method: 'post',
	   	url:url,
	   	data: data,
	   	cancelToken: new CancelToken(c => { //强行中断请求要用到的
	   	cancel = c
	   	})
	  }).then(res =>res.data,res=>{ //中断请求和请求出错都会走这里,我这里用 cancelAjaxText 来区别
	  	if(res.message == cancelAjaxText){ 
	  		return {status : false,msg:cancelAjaxText}
	  	}else{
	  		this.$confirm('登录过时,是否重新登录', '提示', {
			   	confirmButtonText: '确定',
			   	cancelButtonText: '取消',
			   	type: 'warning'
			  }).then(() => {
			   	window.location.href = Vue.prototype.url_head + '/';
			  }).catch(() => {
			   	  
			  });
	  	}
		 		 	
			})
 	return ajax;
};

接入 axios ,在POST方法里加入 cancelToken 数据,在上面else中,中断请求和请求出错都会走那里,所以用一个msg来识别(因为接口返回中也有一个msg,统一一下);

以下是 中断请求的方法,放在 路由切换的监听 router.beforeEach 中 ,cancel 是中断的方法,在post 的 cancelToken 里面拿出来的

Vue.prototype.cancelAjax = function(){ //切换页面强行中断请求 router.beforeEach中用到 
 if(cancel){ 
  cancel(cancelAjaxText); 
 } 
}
router.beforeEach((to, from, next) => { 
<span style="white-space:pre;"> </span>Vue.prototype.cancelAjax()  
 next(); 
});

调用post

<span style="white-space:pre;">   </span>this.post(this.ajaxUrl + 'getCrTree',{ 
    devAddr : this.changeData.devAddr, 
    innerId : this.changeData.innerId, 
   }).then(ret=>{ 
    if(ret.status){ 
      
    }else{ 
     this.msg(ret.msg); 
    } 
   })

以上这篇vue axios 在页面切换时中断请求方法 ajax就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript函数、方法、对象代码
Oct 29 Javascript
js word表格动态添加代码
Jun 07 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
解析window.open的使用方法总结
Jun 19 Javascript
jQuery制作简单柱状图实例
Jan 28 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
Aug 15 Javascript
jquery中表单 多选框的一种巧妙写法
Sep 06 Javascript
javascript正则表达式总结
Feb 29 Javascript
AngularJS基础 ng-src 指令简单示例
Aug 03 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
从零学习node.js之搭建http服务器(二)
Feb 21 Javascript
nuxt 实现在其它js文件中使用store的方式
Nov 05 Javascript
node.js通过axios实现网络请求的方法
Mar 05 #Javascript
axios发送post请求springMVC接收不到参数的解决方法
Mar 05 #Javascript
基于vue 添加axios组件,解决post传参数为null的问题
Mar 05 #Javascript
解决vue处理axios post请求传参的问题
Mar 05 #Javascript
解决vue2中使用axios http请求出现的问题
Mar 05 #Javascript
在vue项目中引入highcharts图表的方法(详解)
Mar 05 #Javascript
Angular @HostBinding()和@HostListener()用法
Mar 05 #Javascript
You might like
php数据库连接
2006/10/09 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
pyspark 随机森林的实现
2020/04/24 Python
详解python 内存优化
2020/08/17 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
车贷收入证明范本
2014/01/09 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
消防应急演练方案
2014/02/12 职场文书
黄金酒广告词
2014/03/21 职场文书
运动会拉拉队口号
2014/06/09 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers