ホームページ >ウェブフロントエンド >jsチュートリアル >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を使用してそれを識別します(インターフェースが異なるため)。 returns msgもあるので統一してください);
以下はlistenルーターに置くリクエストの中断方法です。beforeそれぞれのルーティングスイッチのcancelから取り出した中断方法です。投稿の 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(); });
と投稿
<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); } })
の cancelToken 以上は、皆さんのためにまとめたものです。今後皆さんのお役に立てれば幸いです。
関連記事:
以上がVue ではページ切り替え時の割り込み要求メソッドを axios を使って実装しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。