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 相关文章推荐
捕获关闭窗口的脚本
Jan 10 Javascript
jquery弹出层类代码分享
Dec 27 Javascript
JavaScript实现点击按钮切换网页背景色的方法
Oct 17 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
Feb 19 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
用vue和node写的简易购物车实现
Apr 25 Javascript
vue 引入公共css文件的简单方法(推荐)
Jan 20 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
Apr 28 Javascript
JavaScript页面倒计时功能完整示例
May 15 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
Feb 26 Javascript
Vue实现附件上传功能
May 28 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 图片上添加透明度渐变的效果
2009/06/29 PHP
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
python搜索包的路径的实现方法
2019/07/19 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
父亲生日宴会答谢词
2014/01/10 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
对公司合理化的建议书
2014/03/12 职场文书
留学生求职信
2014/06/03 职场文书
小学班级口号
2014/06/09 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android