リクエストインターセプタ リクエストレスポンダ

VueやReactなどのフロントエンドフレームワークで開発する場合、通常はaxiosなどのライブラリを使用してネットワークリクエストを行います。これらのライブラリには通常、インターセプタの機能があり、リクエストが送信される前と応答が返された後に、リクエストまたはレスポンスの一部の関連パラメータまたはデータをインターセプトして変更するために使用されます。リクエスト インターセプターとレスポンス インターセプターの使用法を簡単に紹介します。

リクエストインターセプター

リクエスト インターセプターは、リクエストが送信される前にリクエストをインターセプトし、リクエスト ヘッダーへのトークンの追加やリクエスト タイムアウトの追加など、いくつかの統合処理または変更操作を実行できます。axios では、 axios.interceptors.request.use メソッドを使用してインターセプターを追加できます。以下に例を示します。

import axios from 'axios';

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 添加 token
  config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token');
  // 添加超时时间
  config.timeout = 10000;
  return config;
}, function (error) {
  // 请求错误时进行处理
  return Promise.reject(error);
});

上記のコードでは、 axios.interceptors.request.use メソッドを呼び出してリクエスト インターセプターを追加しました。このリクエスト インターセプターは、リクエストを送信する前にリクエスト ヘッダーにフィールドを追加します Authorization 。このフィールドの値は、localStorage から取得したトークンです。同時に、フィールドを構成オブジェクトに追加します。 timeout このフィールドの対応する値は、リクエストのタイムアウト期間は 10000 ミリ秒です。

応答インターセプター

応答インターセプターは、要求応答が返された後に応答をインターセプトし、トークンの有効期限が切れているかどうかの判断、バックエンド例外のキャプチャなど、いくつかの統合処理または変更操作を実行できます。axios では、 axios.interceptors.response.use メソッドを使用してインターセプターを追加できます。以下に例を示します。

import axios from 'axios';

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 判断 token 是否过期并进行处理
  if (response.data.code === 401) {
    // 跳转到登录页面
    window.location.href = '/login';
  }
  // 捕获后端异常并进行处理
  if (response.data.code !== 0) {
    // 弹出错误提示框等
    console.error(response.data.msg);
  }
  return response;
}, function (error) {
  // 对响应的错误进行处理
  return Promise.reject(error);
});

上記のコードでは、 axios.interceptors.response.use メソッドを呼び出して応答インターセプターを追加しました。このレスポンス インターセプタは、リクエストが返された後に返されたステータス コードが 401 であるかどうかを判断します。401 である場合は、ログイン ページにジャンプします。また、バックエンドの例外情報もキャプチャします。返されたステータス コードが 0 でない場合は、エラーが発生します。プロンプトボックスなどが表示されます。

おすすめ

転載: blog.csdn.net/weixin_42602736/article/details/130872240
おすすめ