ホームページ >ウェブフロントエンド >jsチュートリアル >Fetch の「no-cors」モードで「response.json()」が「予期しない入力の終わり」をスローするのはなぜですか?

Fetch の「no-cors」モードで「response.json()」が「予期しない入力の終わり」をスローするのはなぜですか?

DDD
DDDオリジナル
2024-12-01 19:57:18804ブラウズ

Why Does `response.json()` Throw

CORS 応答処理時の予期しない入力終了エラー

REST-API フェッチ呼び出しからの応答を no-cors モードで処理する場合、開発者は「SyntaxError: Unexpected end of input」エラーが発生する可能性があります。このエラーは、response.json() 行で発生し、応答を JSON として解析できなくなります。

原因

no-cors モードにより、ブラウザへの応答データ。このモードでは、応答は不透明になります。つまり、フロントエンド JavaScript はその本文やヘッダーにアクセスできません。この制限は、クロスオリジン データ アクセスと潜在的なセキュリティ脆弱性を防ぐために設計されています。

解決策

このエラーを解決するには、no-cors モードをリクエスト。このモードは、CORS 問題の回避策として使用しないでください。代わりに、次の解決策を検討する必要があります:

  • Access-Control-Allow-Origin 応答ヘッダーを送信し、OPTIONS リクエストを処理するようにサーバーを構成します。
  • 転送するには CORS プロキシを使用します。サーバーへのリクエストを送信し、CORS ヘッダーを処理します。

追加情報

  • Request オブジェクトのドキュメントでは、no-cors モードを使用する効果について説明しています: https://developer.mozilla.org/en-US/docs/Web/API/Request /mode
  • CORS 問題の処理に関するガイダンスについては、次の回答を参照してください。 https://stackoverflow.com/questions/23619190/no-access-control-allow-origin-header-is-present-on-the-requested-resource-whe

以上がFetch の「no-cors」モードで「response.json()」が「予期しない入力の終わり」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。