vue-cli axios リクエストメソッドとクロスドメイン処理の問題
この記事は主に vue-cli axios リクエスト方法とクロスドメイン処理の問題を紹介しており、クロスドメインの問題を解決するための vue の axios とインターセプターの使用についても言及しています。参照できるようになります
vue-cli axiosリクエストメソッドとクロスドメイン処理をしてみましょう
axiosを使用するためにファイルにaxiosを導入します
-
cnpm install axios --save
ログイン後にコピー
config/index.js ファイルにプロキシを設定します
main.js文件 :import axios from 'axois' 要发送请求的文件:import axios from 'axois'
ログイン後にコピー 試してみてください。クロスドメインは成功しましたが、この知識は開発環境でのクロスドメインの問題を解決します(dev) であり、運用環境のサーバーに実際にデプロイされている場合は、そうではありません。同じオリジンに関するクロスドメインの問題が依然として存在します。
axiosリクエストメソッド
リクエストを取得
dev: { proxyTable: {// 输入/api 让其去访问http://localhost:3000/api '/api':{ target:'http://localhost:3000'//设置调用的接口域名和端口号 ( 设置代理目标) }, '/api/*':{ target:'http://localhost:3000' }, changeOrigin: true, pathRewrite: { //路径重写 '^/api': '/' //这里理解成用‘/api'代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://localhost:3002/user/add',直接写‘/api/goods/add'即可 } }
postリクエスト
// 向具有指定id的用户发出请求 axios.get('/user?id=1001') .then(function (response) { console.log(response.data); }).catch(function (error) { console.log(error); }); // 也可以通过 params 对象传递参数 axios.get('/user', { params: { id: 1001 } }).then(function (response) {//请求成功回调函数 console.log(response); }).catch(function (error) {//请求失败时的回调函数 console.log(error); });
追加:
vue の axios はクロスドメインの問題を解決しますインターセプターの使用法 1. vue の axios は vue.use() メソッド宣言をサポートしません。 したがって、これを解決するには 2 つの方法があります:
1 つ目: main.js に axios を導入し、それを vue プロトタイプ チェーンのプロパティとして設定して、this.axios をコンポーネント内で直接使用できるようにします
axios.post('/user', { userId: '10001' //注意post请求发送参数的方式和get请求方式是有区别的 }).then(function (response) { console.log(response); }).catch(function (error) { console.log(error); });
ここで注意すべき点は、リクエストされたデータを axios のデータにコピーするためにこれを使用することは無効であるということです。これはアロー関数を使用することで解決できます。
1. vue cli スキャフォールディング フロントエンドがバックエンド データ インターフェイスを調整するときのローカル プロキシのクロスドメインの問題。たとえば、ローカルホスト http://10.1.5.11:8080/xxx/duty? time=2017-07-07 14 :57:22' は、ドメイン間でのみアクセスできます。直接アクセスすると、「XMLHTTPRequest を読み込めません」と報告されます http://10.1.5.11:8080/xxx/duty?time=2017 -07-07 14:57: 22'。プリフライト要求への応答がアクセス制御を通過しません…
なぜクロスドメインの問題が発生するのですか?これは独自の相互通信ではないため、詳細については Google にアクセスしてください。ここでは、次のように webpack で proxyTable を設定するだけで問題ありません。
クロスドメインの成功ですが、これは開発環境 (dev) でクロスドメインの問題が解決されただけですが、実際に運用環境のサーバーにデプロイされた場合でも、依然としてクロスドメインの問題が発生します。たとえば、デプロイしたサーバー ポートは 3001 で、最初のステップはフロント エンドと開発環境で別々にテストできます。 config/dev.env.js および prod.env.js、つまり、開発/運用環境では、要求されたアドレス API_HOST をそれぞれ構成します。開発環境では、上記のプロキシ アドレス API の通常のインターフェイスを使用します。アドレスは本番環境で使用するのでこのように設定し、2つのファイルにそれぞれ以下の設定を行います。import axios from 'axios'; Vue.prototype.axios=axios; components: this.axios({ url:"a.xxx", method:'post', data:{ id:3, name:'jack' } }) .then(function(res){ console.log(res); }) .catch(function(err){ console.log(err); }) }
config/dev.env.js
和prod.env.js
post リクエストを送信するときは、通常、送信するコンテンツのタイプである Content-Type を設定する必要があります。application/json は、json オブジェクトを送信することを指しますが、それを文字列化します。前進。 application/xxxx-form は送信を指しますか? a=b&c=d 形式の場合は、qs メソッドを使用して形式を設定できます。qs は、axios のインストール後に自動的にインストールされます。コンポーネントにインポートするだけです。
config/index.js dev: { proxyTable: { '/api': { target: 'http://10.1.5.11:8080/',//设置你调用的接口域名和端口号 changeOrigin: true, //跨域 pathRewrite: { '^/api': '/' //这里理解成用‘/api'代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://10.1.5.11:8080/xxx/duty?time=2017-07-07 14:57:22',直接写‘/api/xxx/duty?time=2017-07-07 14:57:22'即可 } }
アドレスページにアクセスすると、そのページに再度アクセスする前に再度ログインするよう求められることがあります。これは、トークンなどの ID 認証が失敗したことを意味します。が失われている、またはトークンがまだローカルに存在しているが有効期限が切れているため、ローカル トークン値があるかどうかを判断するだけでは問題を解決できません。このとき、サーバーはリクエスト時に 401 エラーを返し、承認エラー、つまりページにアクセスする権限がないことを示します。
すべてのリクエストを送信する前、およびサーバーの応答データを操作する前に、この状況をフィルタリングできます。
えー以下を見てください vue cli脚手架前端调后端数据接口时候的本地代理跨域问题,如我在本地localhost访问接口http://40.00.100.100:3002/是要跨域的,相当于浏览器设置了一到门槛,会报错XMLHTTPRequest can not load http://40.00.100.100:3002/. Response to preflight request doesn't pass access control…. 为什么跨域同源非同源自己去查吧,在webpack配置一下proxyTable就OK了,如下 config/index.js 上面是我整理给大家的,希望今后会对大家有帮助。 相关文章:
以上がvue-cli axios リクエストメソッドとクロスドメイン処理の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。dev: {
加入以下
proxyTable: {
'/api': {
target: 'http://40.00.100.100:3002/',//设置你调用的接口域名和端口号 别忘了加http
changeOrigin: true,
pathRewrite: {
'^/api': '/'
//这里理解成用‘/api'代替target里面的地址,
后面组件中我们掉接口时直接用api代替 比如我要调
用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add'即可
}
}
}

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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