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

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

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

npm をインストール [email protected] --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 回目のハンドシェイク データ転送プロセス図

推薦する

Dockerサーバーのストレージリソースプール不足問題の解決

目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...

MySQL での mysqladmin 日常管理コマンドの概要 (必読)

mysqladmin ツールの使用形式は次のとおりです。 mysqladmin [オプション] コ...

W3C チュートリアル (9): W3C XPath アクティビティ

XPath は、XML ドキュメントの一部を選択するための言語です。 XPath は、XSLT、XQ...

15 分で学べる並列アーティファクト GNU Parallel 入門ガイド

GNU Parallel は、1 台以上のコンピューター上で計算タスクを並列に実行するためのシェル ...

MySQL シャーディングの詳細

1. ビジネスシナリオの紹介MySQLを使用する電子商取引システムがあるとします。大量のデータを保存...

MySQL が重複データを挿入するのを防ぐ 3 つの方法

新しいテーブルを作成する テーブル「人」を作成します( `id` int NOT NULL COMM...

Java+Tomcat 環境の展開とインストールのプロセス図

次に、Centos7 に Java+Tomcat をインストールします。インターネット上には多くの記...

Nginx プロキシ axios リクエストと注意事項

序文最近、小さなデモを作成しました。大規模な工場のオンライン データを使用したため、インターフェイス...

MySQLは現在の日付と時刻を取得する関数の例の詳細な説明

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

Vue を使用して Web ページのスクリーンショットを撮る方法をご存知ですか?

目次1. html2Canvasをインストールする2. 必要なVueコンポーネントを導入する3. ス...

Nginx+ModSecurity セキュリティモジュールの導入

目次1. ダウンロード2. 展開1.Nginxのデプロイメント2. ModSecurityの展開3....

MySQL 8.0.22 winx64 のインストールと設定方法のグラフィックチュートリアル

MySQL-8.0.22-winx64のデータベースインストールチュートリアルは参考になります。具体...

負荷分散と動的・静的分離を実現するNginx+Tomcatの原理の分析

1. Nginx ロードバランシングの実装原理1. Nginxはリバースプロキシを通じて負荷分散を実...

ストリーマーボタンの効果を実現するCSS3アニメーション

CSS3 を学習する過程で、CSS3 属性を使用すると多くのクールな効果を簡単に実現できることが分か...

Windows での PyTorch 開発環境のインストール チュートリアル

アナコンダのインストールAnaconda は、Python の使用を容易にするために作成されたソフト...