HTTPとaxiosとfetch
2552 ワード
プロジェクトの進行中に、バックエンドチームメンバーとリクエストと応答をテストする過程でいくつかのホットな問題が発生しました.
GETリクエストでクエリーしようとしたが、クライアントにエラーが発生した.
POSTMANでリクエストしたURLを送信して入っていけばきっとクエリがうまくいきます...
axiosのフォーマットも試して、fetchで報告できるものをすべて試してから気づきました.GET要求はPOSTやPUTなど他の方法と異なり,クライアントがサーバにデータを送信できない.バックエンドリクエストのデータを指定するのではなく、最初からparamsを使用する必要があります.このような経験をもとに、不足しているHTTP通信部分をしっかり分析することを決意しました.
インターネットデータ交換プロトコル(ルール) 開始行、タイトル、本文構成 開始行(HTTPメソッド、アドレス、HTTPバージョン)、ヘッダ(要求された情報)、本文(要求時に送信データ) .
開始行(HTTPバージョン、ステータスコード、ステータスメッセージ)、ヘッダ(応答情報)、本文(要求データ) HTTPメソッドを動詞とするアドレスをリソースとする方式 .
GETおよびDELETE要求は、本明細書をどのように処理するかを定義していないので、本明細書を一緒に送信しない→Query String Parameters(例えば、/user?id=1&name=solda) を使用するサーバは、要求メッセージの本文を受信してパケット化(解析)し、 を使用する.
は種類が多いですが、今回のプロジェクトでは、よく見かけるタイトルを整理しておきたいだけです. コンテンツタイプ:クライアントからサーバにデータを送信する場合、www-url-form-encoded、multipart/form-dataなどを含む
Accept:リクエストを送信する場合は、このタイプ(MIME)のデータをサーバに送信してください. ライセンス:JWTやBeareなどの認証トークンをサーバに送信する場合、API要求時に を使用します. Origin アクセス制御Allow-Origin:サーバにクライアントアドレスを書き込んでもエラーは発生しません JavaScriptを使用した非同期通信 クライアントとサーバ間でXML を交換 XHR(XMLHttpRequest)オブジェクトは、ページ全体を再ロードする必要がなく、必要なデータ のみをロードします.
axios
JSONデータ 応答タイムアウトを設定方法 がある.ブラウザ互換性ガラス は、 Promiseオブジェクト を返します.
fetch
ES 6からJavaScript内蔵ライブラリまで、導入することなく を使用できます.サポートされていないブラウザ は、 Promiseオブジェクト を返します.
Web開発を行う前に、ある程度HTTPの基本概念を学んでおけば、間違いと戦うのはずっと簡単です.プロジェクトを継続して行うことで、サーバとの通信を熟知することができます.
GETリクエストでクエリーしようとしたが、クライアントにエラーが発生した.
POSTMANでリクエストしたURLを送信して入っていけばきっとクエリがうまくいきます...
axiosのフォーマットも試して、fetchで報告できるものをすべて試してから気づきました.GET要求はPOSTやPUTなど他の方法と異なり,クライアントがサーバにデータを送信できない.バックエンドリクエストのデータを指定するのではなく、最初からparamsを使用する必要があります.このような経験をもとに、不足しているHTTP通信部分をしっかり分析することを決意しました.
HTTP
HTTPメッセージ
リクエスト
応答
REST
さらに
HTTPヘッダ
共通
リクエスト
応答
AJAX
axios const options = {
method: "POST",
url: "http://www.example.com",
headers: {
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
},
data: {
key: value
}
};
axios(options);
自動変換
const options = {
method: "POST",
url: "http://www.example.com",
headers: {
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
},
data: {
key: value
}
};
axios(options);
fetch const url = "http://www.example.com";
const options = {
method: "POST",
mode: "cors",
headers: {
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
},
body: JSON.stringify({
key: value
})
};
fetch(url, options);
const url = "http://www.example.com";
const options = {
method: "POST",
mode: "cors",
headers: {
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
},
body: JSON.stringify({
key: value
})
};
fetch(url, options);
n/a.結論
Web開発を行う前に、ある程度HTTPの基本概念を学んでおけば、間違いと戦うのはずっと簡単です.プロジェクトを継続して行うことで、サーバとの通信を熟知することができます.
Reference
この問題について(HTTPとaxiosとfetch), 我々は、より多くの情報をここで見つけました https://velog.io/@solda/HTTP-그리고-axios와-fetchテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol