ホームページ > ウェブフロントエンド > jsチュートリアル > Vue インターセプター vue-resource インターセプターの使用方法の詳細な説明

Vue インターセプター vue-resource インターセプターの使用方法の詳細な説明

小云云
リリース: 2017-12-18 12:05:13
オリジナル
3076 人が閲覧しました

いわゆるインターセプターは、いくつかのファイルをインターセプトすることです。この記事では、主にリクエストインターセプターを追加するための Vue と、vue-resource インターセプターの使用方法を紹介します。

1. 現象

エラーと設定要求情報の統合処理

2. axios をインストールします。コマンド: npm install axios --save-dev

2. config ディレクトリに新しいファイル axios を作成します。ルート ディレクトリ .js の内容は次のとおりです:

import axios from 'axios'
// 配置默认的host,假如你的API host是:http://api.htmlx.club
axios.defaults.baseURL = 'http://api.htmlx.club' 
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config
}, function (error) {
  // 对请求错误做些什么
return Promise.reject(error)
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
});
ログイン後にコピー

3. main.js でそれを参照し、呼び出すエイリアス ($ajax) を設定します:

import axios from 'axios'
import '../config/axios'
Vue.prototype.$ajax = axios
ログイン後にコピー

図に示すように:

4. 、次のようなログイン投稿:

this.$ajax({
  method: 'post',
  url: '/login',
  data: {
    'userName': 'xxx',
    'password': 'xxx'
  }
}).then(res => {
  console.log(res)
})
ログイン後にコピー

ps: vue-resource インターセプターの使用を見てみましょう

vue プロジェクトで vue-resource を使用するプロセスでは、一時的な要件を追加する必要があります。任意のページの http リクエストでトークンの有効期限が切れているかどうかを判断します。トークンの有効期限が切れている場合は、ログイン ページにジャンプする必要があります。各ページのhttpリクエスト動作に判定を追加したい場合、非常に膨大な修正作業が必要となります。それでは、vue-resource には、リクエストの応答をキャプチャするパブリック コールバック関数があるのでしょうか?答えは「はい」です!

vue-resource のインターセプターはまさにこのニーズに対する解決策です。各 http リクエストの応答後、インターセプタが次のように設定されている場合、最初にインターセプタ関数が実行され、応答ボディが取得され、その後、応答を

に返して受信するかどうかが決定されます。次に、このインターセプタに応答ステータス コードの判断を追加して、ログイン ページにジャンプするか、現在のページに留まってデータの取得を続けるかを決定します。

main.jsに以下のコードを追加します

Vue.http.interceptors.push((request, next) => {
 console.log(this)//此处this为请求所在页面的Vue实例
 // modify request
 request.method = 'POST';//在请求之前可以进行一些预处理和配置
 // continue to next interceptor
  next((response) => {//在响应之后传给then之前对response进行修改和逻辑判断。对于token时候已过期的判断,就添加在此处,页面中任何一次http请求都会先调用此处方法
   response.body = '...';
    return response;
 });
});
ログイン後にコピー

この方法を知る前はアホな方法を考えていましたが、修正工数もある程度軽減できます。この方法は、this.$$http.get メソッドを Vue にバインドして、各ページの http リクエストの $http の前に $ を追加するだけです。

rreee

みんなはどうやって学びましたか?急いで試してみてください。


関連する推奨事項:

php でさまざまなインターセプターを実装する方法に関するアイデア

php インターセプターのサンプル コード分析

WeChat アプレット開発ページ インターセプターの詳細な説明

以上がVue インターセプター vue-resource インターセプターの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート