Vue3 (V) HTTPライブラリaxiosの統合の詳細

Vue3 (V) HTTPライブラリaxiosの統合の詳細

1. axiosをインストールする

npm をインストール axios@0.21.0 --save

2. アクシオスの使用

1.ホームページでaxiosを参照する

Vue3新しいsetup初期化メソッドが追加されたので、ここで使用してテストを開始します。サンプルコードは次のとおりです。

<テンプレート>
  <a-レイアウト>
    <a-layout-sider width="200" style="background: #fff">
      <a-メニュー
          モード="インライン"
          v-model:selectedKeys="selectedKeys2"
          v-model:openKeys="openKeys"
          :style="{ 高さ: '100%', 右境界線: 0 }"
      >
        <a-サブメニューキー="sub1">
          <テンプレート #タイトル>
                <span>
                  <ユーザーによるアウトライン />
                  サブナビ1
                </span>
          </テンプレート>
          <a-menu-item key="1">オプション1</a-menu-item>
          <a-menu-item key="2">オプション2</a-menu-item>
          <a-menu-item key="3">オプション3</a-menu-item>
          <a-menu-item key="4">オプション4</a-menu-item>
        </a-サブメニュー>
        <a-サブメニューキー="sub2">
          <テンプレート #タイトル>
                <span>
                  <ラップトップのアウトライン />
                  サブナビ2
                </span>
          </テンプレート>
          <a-menu-item key="5">オプション5</a-menu-item>
          <a-menu-item key="6">オプション6</a-menu-item>
          <a-menu-item key="7">オプション7</a-menu-item>
          <a-menu-item key="8">オプション8</a-menu-item>
        </a-サブメニュー>
        <a-サブメニューキー="sub3">
          <テンプレート #タイトル>
                <span>
                  <通知の概要 />
                  サブナビ3
                </span>
          </テンプレート>
          <a-menu-item key="9">オプション9</a-menu-item>
          <a-menu-item key="10">オプション10</a-menu-item>
          <a-menu-item key="11">オプション11</a-menu-item>
          <a-menu-item key="12">オプション12</a-menu-item>
        </a-サブメニュー>
      </a-メニュー>
    </a-layout-sider>
    <レイアウトコンテンツ
        :style="{ 背景: '#fff', パディング: '24px', マージン: 0, 最小高さ: '280px' }"
    >
      コンテンツ
    </a-レイアウトコンテンツ>
  </a-レイアウト>
</テンプレート>

<script lang="ts">
'vue' から defineComponent をインポートします。
'axios' から axios をインポートします。

エクスポートデフォルトdefineComponent({
  名前: 'ホーム'、
  設定(){
    console.log('セットアップ');
    axios.get("http://localhost:8888/ebook/list?name=spring").then(応答 =>{
      console.log(応答);
    })
  }
});
</スクリプト>

2. サービスを再起動する

サービスを開始した後、ホームページを開くと、以下のように異常はありません。

but 、状況は思ったほど良くありません。F12 を開いてコンソールを見てみますか?

怖い場合は、以下のように開けておきます。

警告部分は無視してください。赤い丸の部分はエラーです。

エラーが発生しても慌てないでください。これは正常です。問題を解決してください。明らかにクロスドメインの問題です。簡単に言うと、同じ IP ですが、ポートが異なるためアクセスできないのです。

3. クロスドメインとは何ですか?

ある IP ポート ( vueプロジェクト) のページが別の IP ポート ( springbootリクエスト インターフェース) のリソースにアクセスすると、クロスドメイン アクセスが発生することがわかります。

4. ドメイン間の問題を解決する

クロスドメイン問題を解決するには、 CorsConfig構成クラスを追加します。サンプル コードは次のとおりです。

org.springframework.context.annotation.Configuration をインポートします。
org.springframework.web.cors.CorsConfiguration をインポートします。
org.springframework.web.servlet.config.annotation.CorsRegistry をインポートします。
org.springframework.web.servlet.config.annotation.WebMvcConfigurer をインポートします。

@構成
パブリッククラスCorsConfigはWebMvcConfigurerを実装します{

    @オーバーライド
    パブリック void addCorsMappings(CorsRegistry レジストリ) {
        レジストリ.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedHeaders(CorsConfiguration.ALL)
                .allowedMethods(CorsConfiguration.ALL)
                .allowCredentials(true)
                .maxAge(3600); // 1時間以内の事前チェックは不要(OPTIONSリクエストを送信)
    }

}

5. バックエンドサービスを再起動して再度アクセスします

さあ、奇跡を目撃しましょう。真実を見るにはF12を押してください。警告を無視すると、次の図に示すように、印刷されたresponseコンテンツが表示されます。

結論

実際、 jQueryを使用してこれを行うこともできます。すべて同じです。どれを好むかは、慣れているものによって異なります。ここでは、統合HTTPライブラリaxiosを紹介します。興味のある学生は、自分で試してみることを歓迎します。

Vue3統合HTTPライブラリaxiosの詳細についての記事はこれで終わりです。Vue3 統合 HTTP ライブラリ axios の関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • TypeScript を使用して Vue3 で axios をカプセル化する詳細な例
  • vue3.x+vite+element-ui+vue-router+vuex+axios を使用してプロジェクトをビルドします
  • Vue3+TypeScriptはaxiosをカプセル化し、リクエスト呼び出しを実装します
  • Vue3はaxiosのクロスドメイン実装プロセス分析を構成する
  • Vue3はフロントエンドのログを出力するためにaxiosインターセプターを使用する

<<:  HTML テーブル マークアップ チュートリアル (30): セルの暗い境界線の色属性 BORDERCOLORDARK

>>:  TCP 3 回目のハンドシェイク データ転送プロセス図

推薦する

リストループスクロールを実現するための HTML+CSS+JavaScript サンプルコード

説明: 指定された時間内に前のノードのコンテンツを置き換えるタイマーを設定します。 1. キーコード...

ミニプログラムカスタムコンポーネントの非効率的なグローバルスタイルの解決策

目次長すぎて読めないコンポーネントスタイルの分離デモテスト優先度ページの分離構成参考文献ネイティブ ...

Linux の一般的なテキスト処理コマンドと vim テキストエディタ

今日は、いくつかの一般的なテキスト処理コマンドとvimテキストエディタを紹介します。 3日目 - 一...

最初のReactページを作成する方法

目次Rractとは何ですか?背景React スキャフォールディングJSXとは何かRractとは何です...

Vueタイマーの詳細な使い方

この記事では、参考までにタイマーを実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

NFS サーバーの原理と、その構築、構成、展開の手順を簡単に分析します。

目次NFS サービスの概要NFS とは何ですか? NFS マウントの原則NFS サーバーはデータ転送...

MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal

Canal は、Java を使用して開発された Alibaba のオープンソース プロジェクトです...

MySQLは文字列の連結、インターセプション、置換、位置検索操作を実装しています

MySQL 文字列の連結、インターセプト、置換、および検索位置。よく使用される文字列関数:関数例示す...

Win7x64でのMySQL 5.7.18解凍版のインストール方法

関連記事: Win7 x64 に解凍版の mysql 5.7.18 winx64 をインストールする...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

JavaScriptの厳密モードが8進数をサポートしていない問題の説明

JavaScript厳密モードが 8 進数をサポートしていないという問題に関して、まず、 Java...

Dockerはプロセス操作を管理するためにSupervisorを使用する

Docker コンテナは、起動時に、たとえば ssh または apache デーモン サービスなどの...

MySQL 5.7.25 圧縮版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.25圧縮版のインストールと設定方法を参考までに紹介します。具体的な...

docker ベースの mariadb のインストール構成プロセスの分析

1. インストール dockerhub を通じてインストールする mariadb のバージョンを検索...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...