我是靠谱客的博主 听话小笼包,最近开发中收集的这篇文章主要介绍axios重新调用失败的ajax_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);

}

})

以上这篇vue axios 在页面切换时中断请求方法 ajax就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

最后

以上就是听话小笼包为你收集整理的axios重新调用失败的ajax_vue axios 在页面切换时中断请求方法 ajax的全部内容,希望文章能够帮你解决axios重新调用失败的ajax_vue axios 在页面切换时中断请求方法 ajax所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部