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 相关文章推荐
网页中的图片的处理方法与代码
Nov 26 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
Oct 14 Javascript
前台js对象在后台转化java对象的问题探讨
Dec 20 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
Sep 09 Javascript
js中flexible.js实现淘宝弹性布局方案
Jun 23 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
echarts整合多个类似option的方法实例
Jul 10 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
vue - props 声明数组和对象操作
Jul 30 Javascript
vue使用video插件vue-video-player的示例
Oct 03 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
Home Coffee Roasting
2021/03/03 咖啡文化
php获取文件大小的方法
2014/02/26 PHP
php实现用已经过去多长时间的方式显示时间
2015/06/05 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
jQuery 解析xml文件
2009/08/09 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
Python分治法定义与应用实例详解
2017/07/28 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Python 字符串与数字输出方法
2018/07/16 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
金融学专科生自我鉴定
2014/02/21 职场文书
留学顾问岗位职责
2014/04/14 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
九年级数学教学反思
2016/02/17 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
导游词之无锡古运河
2019/11/14 职场文书