ホームページ ウェブフロントエンド Vue.js Vue3 Axios インターセプターをリクエスト ファイルにカプセル化する方法

Vue3 Axios インターセプターをリクエスト ファイルにカプセル化する方法

May 19, 2023 am 11:49 AM
vue3 axios request

1. request.js という名前の新しいファイルを作成し、Axios にインポートします:

import axios from 'axios';
ログイン後にコピー

2. request という名前の関数を作成し、エクスポートします:

Create a 関数は request と呼ばれます。そして、ベース URL を持つ新しい Axios インスタンスに設定されます。ラップされた Axios インスタンスでタイムアウトを設定するには、Axios インスタンスの作成時にタイムアウト オプションを渡します。

export const request = axios.create({
  baseURL: 'https://example.com/api',
  timeout: 5000, // 超时设置为5秒
});
ログイン後にコピー

3. リクエスト関数にインターセプタを追加します:

request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

request.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});
ログイン後にコピー

これにより、リクエスト インターセプタとレスポンス インターセプタが追加されます。これらのインターセプターでは、要求が送信される前に認証ヘッダーを追加したり、応答が返された後に応答データにエラーがないかチェックしたりするなど、必要なアクションを実行できます。

4. 最後に、リクエスト関数をエクスポートします:

export default request;
ログイン後にコピー

これで、事前定義されたインターセプタを通過するすべてのネットワーク リクエストは、アプリケーションのリクエスト関数を通じて実行できるようになります。例:

import request from './request';

request.get('/users')
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
ログイン後にコピー

これは、ラップされた Axios インスタンスを使用して GET リクエストを作成し、事前定義されたインターセプターを使用して応答を処理します。

完全な例:

送信前に送信されます。リクエスト トークンとユーザー名。リクエスト インターセプターを使用して、すべてのリクエストに認証ヘッダーを追加できます。

リクエスト インターセプターは、「token」と「username」という名前の値が localStorage に存在するかどうかを確認し、それらを Authorization として追加します。ユーザー名ヘッダー。必要に応じて、これらのヘッダーの名前と値を調整します。

応答データを操作するには、応答インターセプターを使用します。上記の例では、応答インターセプターは、応答データの「ステータス」属性が「成功」であるかどうかを検証します。そうでない場合は、エラーとして処理し、例外としてスローします。応答オブジェクトには、応答ヘッダー、ステータス コード、応答本文などのすべての情報を含む例外情報が含まれます。これらのチェックと例外スローのロジックは、実際の状況に応じて調整できます。

rree

以上がVue3 Axios インターセプターをリクエスト ファイルにカプセル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue アプリケーションで axios を使用しているときに「Uncaught (in Promise) Error: Request failed with status code 500」が発生した場合はどうすればよいですか? Vue アプリケーションで axios を使用しているときに「Uncaught (in Promise) Error: Request failed with status code 500」が発生した場合はどうすればよいですか? Jun 24, 2023 pm 05:33 PM

Vue アプリケーションで axios を使用するのは非常に一般的です。axios は、ブラウザーと Node.js で使用できる Promise ベースの HTTP クライアントです。開発プロセス中に、「Uncaught(inpromise)Error: Requestfailedwithstatuscode500」というエラー メッセージが表示されることがありますが、開発者にとって、このエラー メッセージは理解および解決が難しい場合があります。この記事ではこれについて説明します

Vue アプリケーションで axios を使用するときに「TypeError: Failed to fetch」が発生した場合はどうすればよいですか? Vue アプリケーションで axios を使用するときに「TypeError: Failed to fetch」が発生した場合はどうすればよいですか? Jun 24, 2023 pm 11:03 PM

最近、Vue アプリケーションの開発中に、「TypeError: Failedtofetch」エラー メッセージという一般的な問題に遭遇しました。この問題は、axios を使用して HTTP リクエストを作成し、バックエンド サーバーがリクエストに正しく応答しない場合に発生します。このエラー メッセージは通常、ネットワーク上の理由またはサーバーが応答していないことが原因で、リクエストがサーバーに到達できないことを示します。このエラーメッセージが表示された後はどうすればよいでしょうか?以下にいくつかの回避策を示します。

Vue でのデータ リクエストの選択: Axios または Fetch? Vue でのデータ リクエストの選択: Axios または Fetch? Jul 17, 2023 pm 06:30 PM

Vue でのデータ リクエストの選択: AxiosorFetch? Vue 開発では、データ リクエストの処理は非常に一般的なタスクです。データリクエストにどのツールを使用するかを選択することは、考慮する必要がある問題です。 Vue で最も一般的なツールは、Axios と Fetch の 2 つです。この記事では、両方のツールの長所と短所を比較し、選択に役立つサンプル コードをいくつか示します。 Axios は、ブラウザおよび Node.js で動作する Promise ベースの HTTP クライアントです。

Vue アプリケーションで axios を使用するときに発生する「エラー: ネットワーク エラー」の問題を解決するにはどうすればよいですか? Vue アプリケーションで axios を使用するときに発生する「エラー: ネットワーク エラー」の問題を解決するにはどうすればよいですか? Jun 25, 2023 am 08:27 AM

Vue アプリケーションで axios を使用するときに発生する「エラー: NetworkError」の問題を解決するにはどうすればよいですか? Vue アプリケーションの開発では axios を使って API リクエストをしたり、データを取得したりすることが多いのですが、axios リクエストで「Error: NetworkError」が発生することがあります。まず、「Error:NetworkError」の意味を理解する必要があります。これは通常、ネットワーク接続が切断されていることを意味します。

Vue と Axios を効率的に活用してフロントエンド データのバッチ処理を実装する Vue と Axios を効率的に活用してフロントエンド データのバッチ処理を実装する Jul 17, 2023 pm 10:43 PM

Vue と Axios を効率的に活用して、フロントエンド データのバッチ処理を実装します。フロントエンド開発ではデータ処理が一般的なタスクです。大量のデータを処理する必要がある場合、効果的な方法がなければ、データの処理は非常に煩雑で非効率的になってしまいます。 Vue は優れたフロントエンド フレームワークであり、Axios は人気のあるネットワーク リクエスト ライブラリであり、連携してフロントエンド データのバッチ処理を実装できます。この記事では、Vue と Axios を効率的に使用してデータのバッチ処理を行う方法を詳しく紹介し、関連するコード例を示します。

Vue アプリケーションで axios を使用するときに「エラー: xxxms のタイムアウトを超えました」が発生した場合はどうすればよいですか? Vue アプリケーションで axios を使用するときに「エラー: xxxms のタイムアウトを超えました」が発生した場合はどうすればよいですか? Jun 24, 2023 pm 03:27 PM

Vue アプリケーションで axios を使用するときに「エラー: timeoutofxxxmsexceeded」が発生した場合はどうすればよいですか?インターネットの急速な発展に伴い、フロントエンド技術は常に更新され、改良が重ねられており、Vue は優れたフロントエンド フレームワークとして近年皆様に歓迎されています。 Vue アプリケーションでは、ネットワーク リクエストを行うために axios を使用する必要があることがよくありますが、「エラー: timeoutofxxxmsexceeded」というエラーが発生することがあります。

Vue アプリケーションで axios を使用するときに「TypeError: binding is not a function」が発生した場合はどうすればよいですか? Vue アプリケーションで axios を使用するときに「TypeError: binding is not a function」が発生した場合はどうすればよいですか? Jun 25, 2023 am 08:31 AM

Vue.js アプリケーションでは、axios を使用するのが非常に一般的です。 Axios は、非同期 HTTP リクエストを簡単に送信できる強力な HTTP リクエスト ライブラリです。ただし、axios を使用すると、いくつかのエラーが発生します。そのうちの 1 つは「TypeError:bindisnotafunction」です。このエラーは通常、axios バージョンが Vue.js と互換性がないことが原因で発生します。このエラーの解決策を見てみましょう。まず必要なのは、

Vue でファイル アップロードを実装するための完全なガイド (axios、element-ui) Vue でファイル アップロードを実装するための完全なガイド (axios、element-ui) Jun 09, 2023 pm 04:12 PM

Vue でファイル アップロードを実装するための完全なガイド (axios、element-ui) 最新の Web アプリケーションでは、ファイル アップロードは基本的な機能になっています。アバター、写真、ドキュメント、ビデオのいずれをアップロードする場合でも、ユーザーのコンピュータからサーバーにファイルをアップロードするための信頼できる方法が必要です。この記事では、Vue、axios、および element-ui を使用してファイルのアップロードを実装する方法に関する詳細なガイドを提供します。 axiosaxios とはプロムベースです

See all articles