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 回目のハンドシェイク データ転送プロセス図

推薦する

Windows Server 2016 に Docker をインストールするプロセスと発生した問題

前提条件Windows Server でコンテナーを実行するには、Windows Server (半...

MySQLストレージ時間タイプの選択に関する問題の説明

MySQL では、datetime 型は通常、時間を保存するために使用されますが、現在では多くのシス...

CentOS7.6にMYSQL8.0をインストールする詳細な手順

1. 一般的に、CentOS では mariadb がデフォルトでインストールされているため、まず ...

GolangでMySQLデータベースのバックアップを実装する方法

背景Navicat は、最高の MySQL 視覚化ツールです。ただし、ビューのインポートとエクスポー...

HTML の左右レイアウトのサンプルコード

CS: ...コードをコピーコードは次のとおりです。 html,body{ margin:0px; ...

Linux サービスでファイアウォールを有効にする 2 つの方法

方法は2つあります: 1. サービス方法ファイアウォールのステータスを確認します。 [root@ce...

Docker デプロイメント RabbitMQ コンテナ実装プロセス分析

1. イメージをプルするまず、次のコマンドを実行して、イメージをローカル コンピューターにダウンロー...

Mybatisの各SQL文の実行時間の統計

背景最近、面接でデータベース トランザクションについてよく質問されます。通常は、@Transacti...

MySQL 5.7.18 のダウンロードとインストールの詳細な手順

MySql ダウンロード1. 公式サイトを開き、ダウンロード パスを見つけます。ダウンロード アドレ...

VantフレームワークをWeChatアプレットに導入するプロセス全体の記録

序文WeChat ミニプログラムのネイティブ UI が少し物足りないと感じることがあるので、サードパ...

JSはjQueryのappend関数を実装します

目次コードを見せてください効果をテストする効果追伸別のアプローチコードを見せてください HTMLEl...

Zookeeper 不正アクセス テストの問題

目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...

Docker に Elasticsearch 7.6.2 をインストールするチュートリアル

DockerをインストールするDocker をインストールする必要がありますが、それ以上の指示はあり...

Windows 10 システムで nginx ファイル サーバーを構成するためのグラフィック チュートリアル

Nginx の公式 Web サイトから Windows バージョンの Nginx をダウンロードしま...

Vue で $props、$attrs、$listeners を使用する方法の詳細な説明

目次背景1. 文書の説明2. 特定の用途結論背景ここで、状況について説明しましょう。親コンポーネント...