[解決済み】Fetch APIとXMLHttpRequestの比較
2022-04-05 23:23:22
質問
Fetch APIでは
Promise
があり、どちらもサーバーへの AJAX リクエストを行うことができます。
Fetch API には、Fetch API にはない特別な機能があることを読みました。
XMLHttpRequest
(をベースにしているので、Fetch API polyfillでも)。
XHR
).
Fetch APIにはどんな機能があるのですか?
どのように解決するのですか?
フェッチでできて、XHRでできないことがいくつかあります。
- リクエストオブジェクトとレスポンスオブジェクトでCache APIを使用することができます。
-
を実行することができます。
no-cors
リクエストを行い、CORS を実装していないサーバーからレスポンスを取得します。JavaScript から直接レスポンスボディにアクセスすることはできませんが、他の API (例: Cache API) で使用することは可能です。 - レスポンスのストリーミング(XHRではレスポンス全体がメモリ上にバッファリングされますが、fetchでは低レベルのストリームにアクセスできるようになります)。これはまだすべてのブラウザで利用できるわけではありませんが、近いうちに利用できるようになるでしょう。
XHRでできることのうち、fetchではまだできないことがいくつかありますが、それらはいずれ利用できるようになるでしょう(ここの "将来の改良"のパラグラフを読んでください)。 https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/ ):
- リクエストを中止する (@sideshowbarker のコメントで説明されているように、これは現在 Firefox と Edge で動作しています)。
- 進捗状況を報告する。
この記事 https://jakearchibald.com/2015/thats-so-fetch/ には、より詳細な説明があります。
関連
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】react router v^4.0.0 Uncaught TypeError: 未定義のプロパティ'location'を読み取れない
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] フェッチする JSONデータをPOSTする
-
[解決済み] XMLHttpRequestでPOSTデータを送信する
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み】jQuery deferredはどのように使用することができますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?
-
[解決済み】HTTP fetch()リクエストをキャンセルするにはどうすればいいですか?