私は fetch API をmy React app内で使用しています。アプリケーションはサーバーにデプロイされ、完全に機能していました。何度もテストしましたが、突然アプリケーションが動作が停止し、理由がわかりません。問題は、get
リクエストを送信すると、サーバーから有効な応答を受信しているのに、フェッチAPIが例外をキャッチしてTypeError: failed to fetch
を表示していることです。コードにも変更を加えていません。すべてのReactコンポーネントの問題です。
有効な応答を得ています。
ただし、同時にこのエラーも発生します。
fetch(url)
.then(res => res.json())
.then(data => {
// do something with data
})
.catch(rejected => {
console.log(rejected);
});
credentials: "include"
を削除すると、ローカルホストでは機能しますが、サーバーでは機能しません。
StackOverflowとGitHubで提供されているすべてのソリューションを試しましたが、うまくいきませんでした。
私は同様の問題を抱えており、私は初心者なので、誰かがコメントするいくつかの事実があります:
この方法でGoogleシートにフォームデータを送信しています(scriptURLは https://script.google.com/macros/s/AKfy ...、showSuccess() は単純な画像を表示しています):
fetch(scriptURL, {method: 'POST', body: new FormData(form)})
.then(response => showSuccess())
.catch(error => alert('Error! ' + error.message))
Edgeで実行すると、HTMLにエラーが表示されず、[ネットワーク]タブに次の3つの要求が報告されます。 実行Chrome my HTML(index.htm)はFailed to fetchエラーを表示し、Networkタブはこの2つのリクエストを報告します 2列目の値はblocked:otherであり、[コンソール]タブにもエラーがあります。
GET https://script.googleusercontent.com/macros/echo?user_content_key=D-ABF ... net :: ERR_BLOCKED_BY_CLIENT
インストールされているChrome=拡張機能を一時停止するために、シークレットウィンドウでコードを実行しましたが、エラーメッセージは表示されず、[ネットワーク]タブに次の2つのリクエストが表示されます:
私の推測では、何か(拡張?)がChrome=がリクエストの回答を読み取ることを妨げています(GETリクエストはブロックされています)。