vue中通过axios实现在页面切换时中断请求方法

下面我就为大家分享一篇vue axios页面切换时中断请求方法 ajax,具有很好的参考价值,希望对大家有所帮助。

如下所示:

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) => {  Vue.prototype.cancelAjax()   next(); });

登录后复制

调用post

立即学习“前端免费学习笔记(深入)”;

   this.post(this.ajaxUrl + 'getCrTree',{     devAddr : this.changeData.devAddr,     innerId : this.changeData.innerId,    }).then(ret=>{     if(ret.status){           }else{      this.msg(ret.msg);     }    })

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

setTimeout时间设置为0详细解析

JS实现的集合去重,交集,并集,差集功能示例

Bootstrap 中data-[*] 属性的整理

以上就是vue中通过axios实现在页面切换时中断请求方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2752134.html

(0)
上一篇 2025年3月8日 06:16:18
下一篇 2025年2月24日 21:56:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论