您好,欢迎访问一九零五行业门户网

vue+axios在页面切换时中断请求怎么实现

这次给大家带来vue+axios在页面切换时中断请求怎么实现,实现vue+axios在页面切换时中断请求的注意事项有哪些,下面就是实战案例,一起来看一下。
如下所示:
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);      }     })
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
js数据类型的使用详解
js的深浅拷贝使用步奏的详解
以上就是vue+axios在页面切换时中断请求怎么实现的详细内容。
其它类似信息

推荐信息