Vueにaxiosを挿入する 'axios' から axios をインポートします。 Vue.prototype.$axios = axios; 'axios' から axios をインポートします axios.defaults.timeout = 5000; //応答時間 axios.defaults.headers.post['Content-Type'] = 'application/json; charset=UTF-8'; //リクエストヘッダーを構成する axios.defaults.withCredentials= true; //Cookieあり axios.defaults.baseURL = 'http://localhost:8080/'; //インターフェースアドレスの設定 //POSTパラメータのシリアル化(リクエストインターセプターの追加) axios.interceptors.request.use((config) => { // バックエンドに応じて、ここでシリアル化コードを追加できます。私が使用する SSM バックエンドは Json オブジェクトを受け入れます。シリアル化が必要な場合は、qs コンポーネント return config を使用できます。 },(エラー) =>{ console.log('間違ったパラメータが渡されました') Promise.reject(error) を返します。 }); //ステータス判定を返す(レスポンスインターセプターを追加) axios.interceptors.response.use((res) => { // 応答データを使って何かする if (!res.data.success) { Promise.resolve(res) を返します。 } res を返します。 }, (エラー) => { console.log('ネットワーク異常') Promise.reject(error) を返します。 }); // Promise を返す (POST リクエストを送信する) エクスポート関数 fetchPost(url, params) { 新しい Promise を返します ((resolve, reject) => { axios.post(url, パラメータ) .then(応答 => { 解決(応答); }, エラー => { 拒否(エラー); }) .catch((エラー) => { 拒否(エラー) }) }) } Promise を返す (get リクエストを送信する) エクスポート関数 fetchGet(url, param) { 新しい Promise を返します ((resolve, reject) => { axios.get(url, {params: param}) .then(応答 => { 解決(応答) }, エラー => { 拒否(エラー) }) .catch((エラー) => { 拒否(エラー) }) }) } エクスポートデフォルト{ フェッチポスト、 取得、 } 簡単なテスト: loginPost: 関数() { パラメータ = { 'パスワード': '123', 'ユーザー名': 'admin' } http.fetchPost('/login', params).then((データ) => { コンソール.log(データ) }).catch(エラー => { コンソール.log(エラー) }) }, こんにちは: 関数() { http.fetchGet('/hello', "").then((データ) => { コンソール.log(データ) }).catch(エラー => { コンソール.log(エラー) }) }, 投稿リクエスト: リクエストを取得: クロスドメインの問題、バックエンドの構成は次のとおりです。 SpringMVC.xml でクロスドメインを構成します。 <!-- インターフェースのクロスドメイン構成 --> <mvc:cors> <!-- allowed-methods="*" --> <!-- すべてのリクエストが有効であることを意味します --> <mvc:mapping path="/**" allowed-origins="*" 許可されるメソッド="POST、GET、OPTIONS、DELETE、PUT" allowed-headers="コンテンツタイプ、アクセス制御許可ヘッダー、認証、X-Requested-With" 許可資格情報="true"/> </mvc:cors><!-- インターフェースのクロスドメイン構成 --> インターフェース構成: Vue で設定する vue.config.js を作成します。 モジュール.エクスポート = { 開発サーバー: { プロキシ: { '/api': { ターゲット: 'http://127.0.0.1:8080', // 仮想サーバーがローカルに作成され、要求されたデータが同時に送受信されるため、サーバーとサーバーが相互にやり取りするときにクロスドメインの問題は発生しません。changeOrigin: true、 ws: 真、 パス書き換え: { '^/api': '' // ターゲット内のリクエスト アドレスを置き換えます。つまり、今後 http://api.jisuapi.com/XXXXX のアドレスをリクエストする場合は、/api と記述するだけです。} } } } } バックエンドも正常にクッキーを取得できます。 もちろん、次の設定に注意してください。これがクッキーの理由です axios.defaults.withCredentials = true; 要約する これで、axios を vue で簡単にカプセル化する方法についての記事は終わりです。より関連性の高い vue カプセル化 axios コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL ステートメントに一重引用符またはバックスラッシュを含む値を挿入する方法
>>: Centos に MYSQL8.X をインストールするチュートリアル
1. 物件リストコードをコピーコードは次のとおりです。色: #999999 テキスト色フォントファミ...
説明する: fuser は、現在ディスク上のファイル、マウント ポイント、さらにはネットワーク ポー...
この記事は主にインターネット上の他のチュートリアルを参考にしています。実際に操作した上でのまとめです...
最近、空港や駅でフライト情報を表示するものと似た大型スクリーンディスプレイのプロジェクトに取り組んで...
この記事では、クリック時にサブメニューを表示するためのJavaScriptの具体的なコードを参考まで...
GitHub にはあらゆる種類の魔法のツールがあります。今日、私はデータベースを操作するためのコマン...
コードをコピーコードは次のとおりです。 .sugLayerDiv{位置:相対; overflow:h...
目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...
この記事では、全選択と逆選択操作を実装するためのjQueryの具体的なコードを参考までに共有します。...
mysql-5.7.9 では、ついにシャットダウン構文が提供されます。以前は、MySQL データベー...
自己学習型ゲーム開発の道において、最も充実した瞬間は、自分でミニゲームを作り、友達と共有して試しにプ...
この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...
目次1. トリガーの紹介1. トリガーとは何ですか? 2. トリガーの特徴2. トリガーを作成する1...
ほとんどのアプリケーション シナリオでは、緊急時に備えて重要なデータをバックアップし、安全な場所に保...
マルチ選択は、すべてのオプションを一覧表示し、ユーザーが Ctrl/Shift キーを使用して複数選...