vue axios 在頁面切換時中斷請求方法

赶牛上岸
發布: 2018-03-06 14:42:04
原創
1917 人瀏覽過

下面小編就為大家分享一篇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就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持php中文網。

相關推薦:

微信小程式開發之選項卡(視窗底部TabBar)頁面切換實作

jquery結合html實作中英文頁面切換

微信公眾號選單進入的頁面切換第二次失效

以上是vue axios 在頁面切換時中斷請求方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!