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 04 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
Aug 10 Javascript
不使用script导入js文件的几种方法
Oct 27 Javascript
Angular 4.X开发实践中的踩坑小结
Jul 04 Javascript
JS实现的找零张数最小问题示例
Nov 28 Javascript
vue+element-ui动态生成多级表头的方法
Aug 28 Javascript
JavaScript生成随机验证码代码实例
Sep 28 Javascript
js实现select下拉框选择
Jan 11 Javascript
微信小程序间使用navigator跳转传值问题实例分析
Mar 27 Javascript
ES6中的Javascript解构的实现
Oct 30 Javascript
基于Cesium绘制抛物弧线
Nov 18 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连接SQLServer2005 的问题解决方法
2010/07/19 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python的常用模块之collections模块详解
2018/12/06 Python
python 调用钉钉机器人的方法
2019/02/20 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
技术学校毕业生求职信分享
2013/12/02 职场文书
大学生求职信范文应怎么写
2014/01/01 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
支部鉴定材料
2014/06/02 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
golang import自定义包方式
2021/04/29 Golang
如何获取numpy array前N个最大值
2021/05/14 Python
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏