問題タブ [fetch-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
service-worker - Serviceworkerでのページとファイルの取得の違い
これは、serviceworkers を介してリクエストを処理するための一般的なコードです。URL がキャッシュにある場合は、キャッシュ レスポンスを返すか、サーバーからフェッチします。しかし、私の疑問は、2 つのコメント行に関するものです。応答を取得するには、そのうちの 1 つを使用する必要があります。
私の疑問は、event.respondWith(fetch(event.request, { credentials: 'include'
ページのフェッチに使用すると、次のエラーが発生することです
DOMException: 'FetchEvent' で 'respondWith' を実行できませんでした: フェッチ イベントは既に応答されています。
しかし、ページは最終的にレンダリングされ、ブラウザは最終的に応答を取得していますが、サムを使用して画像を取得すると、同じエラーが発生し、その上に画像が取得されません。
2番目のオプションを使用するとreturn fetch(event.reuqest, { credentials: 'include' });
、画像とページの両方で正常に機能します。
そのエラーの理由と、ファイルとページの動作が異なる理由を理解できません。
私のもう1つの疑問は、実際にここで資格情報パラメーターが必要かどうかです.Webで見た実装のほとんどがそれを使用しているため、追加しましたが、私が観察したことは、リクエストオブジェクトには既に資格情報プロパティが含まれていることです.常にではない
含む
いつかは
同一起源
それも。そのため、実際の資格情報の値を追加することで実際にオーバーライドしている可能性があります。そうでない場合は、それを含めるかどうかに違いはありません。問題ではありません。
ただし、逆の場合は、資格情報の値を上書きしないでください。これにより、悪影響が生じる可能性があります。
javascript - フェッチストリームを使用した再開可能なダウンローダー
クライアント側のみに基づいて、再開可能なファイル ダウンローダーを作成しようとしています。サーバーは私の制御を超えており、ajax 要求で、非常に大きなバイナリ データ ファイル (100mgb) であるファイルを取得します。
長い調査の結果、xhr要素を使用して応答をストリーミングすることはできず、完全にキャッシュされる前にファイルのチャンクを読み取ることができないことがわかりました...さらに調べて、まったく新しいフェッチAPIを見つけましたが、できません適切なドキュメントやチュートリアルを見つけてください。URLをフェッチしてストリームをチャンクごとに読み取る簡単な例を誰かが説明できれば、非常にありがたいです
javascript - Safari で fetch が定義されていません (ReferenceError: 変数が見つかりません: fetch)
何らかの理由でfetch
( https://fetch.spec.whatwg.org/ ) が Safari (バージョン 9.0.3) で定義されていません。これは標準のようで、Chrome と Firefox で正常に動作します。同じ問題を抱えている他の人を見つけることができないようです
私はreact with reduxを使用しています。ここにいくつかのサンプルコードがあります:
ajax - Django 1.9 AJAX フォームの CSRF トークン 403 エラー - 「CSRF cookie が設定されていません」
SOでこれについて多くのことを見てきましたが、何も問題を解決できません。
問題:
CSRF ミドルウェアを有効にすると、Django は AJAX フォーム リクエストに対して 403 で応答し、次のように述べます。
「CSRF Cookie が設定されていません。」
ドキュメントに従って、カスタムの「X-CSRFToken」ヘッダーを設定する JS 機能が実装されました。
期待どおりに動作し、ブラウザーから「csrftoken」 Cookie を取得し、AJAX 要求と共に投稿します。
しかし、応答はまだ 403 です。
試した解決策:
具体的には、SOまたはWebで見つけることができるすべてを試しました:
ミドルウェアが有効になっていることを確認します。
/li>Cookie が有効になっているさまざまなブラウザー。
@ensure_csrf_cookie
ビューを;で装飾する{% csrf_token %}
私のテンプレートでの設定;render
正しいリクエスト コンテキストを取得するショートカットを使用します。カスタムの設定
CSRF_COOKIE_NAME
とCSRF_HEADER_NAME
私のsettings.py
;明示的に設定
CSRF_COOKIE_SECURE = False
してCSRF_COOKIE_HTTPONLY = False
;明示的に設定
CSRF_TRUSTED_ORIGINS
する。開発サーバーと本番サーバーでのテスト。
request.META["CSRF_COOKIE_USED"] = True
誰かが示唆したように、私の見解でも。
それでも何も得られませんでした。
ヘッダー:
私@csrf_exempt
のprint(request.META)
見解では、カスタムヘッダー"X-CSRFToken"がリクエストに存在し、Django のドキュメントに従ってフォーマットされ、"HTTP_" プレフィックスが付けられ、ハイフンがアンダースコアに置き換えられ、すべて大文字の"HTTP_X_CSRFTOKEN"であることは明らかです。
さらに、その値は Django によって設定された Cookie と一致します。
クッキー:
奇妙なことにprint(request.COOKIES)
、私のビューでページとフォームの読み込み時に「csrftoken」 Cookieが表示されますが、辞書はAJAXリクエストで空です。それが問題になる可能性はありますか?
実際に何が間違っているのかを見つけようと必死です。これを読んでくれてありがとう。
javascript - Service Worker は同期 XHR リクエストに応答できますか?
Service Workers を使用して、既存の Web サイトを強化したいと考えています。特に、実際のリソースが利用できない場合に、Service Worker がプレースホルダー リソースを使用してリクエストに応答するようにすることで、より優れたオフライン サポートを追加したいと考えています。このアプローチは機能していましたが、障害に遭遇しました。サイトには、同期XHR リクエストを使用して特定のリソースをロードする場所がいくつかありますが、サービス ワーカーは Chrome でそれらのイベントを受信しません。(同期 XHR リクエストを排除することを提案しないでください。それは望ましいことですが、範囲外です。)
Service Worker が同期 XHR リクエストに応答することは可能でしょうか? これは実装が複雑であると想像でき、サポートされていない場合は理解できます。W3C Service Workers Specification (Working Draft)とWHATWG Fetch Specification (Living Standard)の間には「正しい」答えが存在するはずですが、まだ解読が終わっていません。これがサポートされるべきかどうかを仕様がどのように記述しているかについての説明、および/またはこの動作の指定または実装に関する議論への参照をいただければ幸いです。
javascript - フェッチ、json コンテンツを読み取った後に HTTP ステータスから拒否することは可能ですか?
それは非常に簡単です。HTTP 412 とエラーの JSON の説明を返す API があります。
私のjavascript(ES6)で私のURLを取得し、必要な両方の情報を把握することは可能ですか:
- HTTP コード
- 解析されたJson
ヘッダーの前にJSONを解析すると、response.statusはもう利用できません。json の前にヘッダーを解析すると、JSON 本体を取得する前に例外がスローされます。
これを処理する方法はありますか?
promise - fetch Promise は実行されません
Android用のアプリを開発するためにnativescriptを使用しています。私は次のようなものを持っています
しかし、then
ブロックは決して実行されません。また、catch
ブロックが実行されてネットワーク エラーが発生することもあります。しかし、どちらの場合でも、tcpdump の記録によると、リクエストは送信され、レスポンスはスムーズに受信されます。
そのため、何らかの理由でネイティブ スクリプトが応答をフィルター処理したようです。
誰もそれを経験したことがありますか?