Fetch API
Fetch API を使用すると、JavaScriptがHTTPリクエストを使用してサーバーと通信できるようになり、XMLHttpRequest
クラスの代わりになります。 リクエストはfetch()
メソッドによって実行され、を返します Promise.
構文
fetch(url, { options })
--url
-リクエストを送信するためのURL。
--options
-パラメータをリクエストします。
options
なしでfetch()
メソッドを指定すると、URL
アドレスにデータをダウンロードするGETリクエストを受け取ります。
クエリパラメータ
2番目の引数{options}
はクエリオプションを受け入れます。 パラメータリスト:
method
-リクエストメソッド(GET、POST、PUT、DELETE、HEAD);headers
-HTTPヘッダー。body
-リクエストbody(メソッドに使用:POST / PUT);cache
-キャッシュモード(デフォルト、リロード、キャッシュなし);mode
-リクエストモード(cors、no-cors、same-origin);redirect
-リダイレクトの処理方法(フォロー、エラー、手動)を指定します。referrer
-リファラーを要求します。signal
-AbortSignal、リクエストの中止。credentials
-リクエストと一緒にCookieを送信します-mit、same-origin。
fetch('https://jsonplaceholder.typicode.com/users', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
},
mode: 'no-cors'
})
応答を得る
fetch()
メソッドは、次のプロパティを持つResponse
クラスのオブジェクトを返します Promise。
status
-応答コード;statusText
-応答コードに対応するテキストメッセージ。ok
-応答コードの成功を示すブール値(true:200-299);headers
-応答ヘッダーを持つオブジェクト。キーはヘッダーの名前であり、キーの値はキーに対応するヘッダーの値です。url
-リクエストの送信先のURL。body
-ReadableStream
形式の応答データbodyUsed
は、データが読み取られていることを示すブール値です。
fetch('https://jsonplaceholder.typicode.com/users').then(response => console.log(response))
応答処理
転送されるデータはReadableStream
形式です。 次の方法を使用して、形式を変更できます。
text()
-応答を文字列に変換します。json()
-応答をJSON形式に変換します。blob()
-応答をBlobオブジェクトに変換します。formData()
-応答をFormDataのインスタンスに変換します。arrayBuffer()
-応答をArrayBufferオブジェクトに変換します。
応答をJSON形式に変換する例。
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => response.json())
.then(data => console.log(data))
エラー処理
プロパティ "status" と "ok" を使用して、 fetch()
がエラーで終了したかどうかを確認できます。
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => {
if (!response.ok) {
console.log('何か問題が発生しました...ステータス: ' + response.status)
} else {
return response.json()
}
})
.then(data => console.log(data))
助けを借りて .catch()
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log(error))
リクエスト例
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => response.json())
.then(data => console.log(data[0].name + ' and ' + data[2].name))
.catch(error => console.log(error))
同じように、 async / await
構文を使用します。これについては、次の記事で詳しく説明します。
let response = await fetch('https://jsonplaceholder.typicode.com/users')
let data = await response.json()
console.log(data[0].name + ' and ' + data[2].name)
問題?
に書き込む Discord または電報 チャット, また、私たちの購読 ニュース
質問:
fetch()
メソッドは何を返しますか?
- 機能
- オブジェクト
- 約束
fetch()
へのURLパラメータのみが与えられた場合、どのようなリクエストを取得しますか?
POST
GET
PUT
HTTPヘッダーを指定するパラメーターはどれですか?
リダイレクト
ヘッダー
資格情報
応答を文字列に変換するには、どのメソッドを使用する必要がありますか?
blob()
json()
text()
Response
クラスオブジェクトのok
プロパティはどういう意味ですか?
1.応答コード 2.応答コードの成功 3.リクエストからのデータの読み取り
このレッスンでどれだけ学んだかを理解するために、このトピックについて当校の モバイルアプリケーション でテストを受けてください。
リンク
Contributors ✨
Thanks goes to these wonderful people (emoji key):
IIo3iTiv | Dmitriy Vasilev 💵 | Resoner2005 🐛 🎨 🖋 | Navernoss 🖋 🐛 🎨 |