web-dev-qa-db-ja.com

リクエストが実際に失敗していないときに「TypeError:フェッチに失敗しました」を取得する

私は fetch API をmy React app内で使用しています。アプリケーションはサーバーにデプロイされ、完全に機能していました。何度もテストしましたが、突然アプリケーションが動作が停止し、理由がわかりません。問題は、getリクエストを送信すると、サーバーから有効な応答を受信して​​いるのに、フェッチAPIが例外をキャッチしてTypeError: failed to fetchを表示していることです。コードにも変更を加えていません。すべてのReactコンポーネントの問題です。

有効な応答を得ています。

enter image description here

ただし、同時にこのエラーも発生します。

enter image description here

fetch(url)
.then(res => res.json())
.then(data => {
  // do something with data
})
.catch(rejected => {
    console.log(rejected);
});

credentials: "include"を削除すると、ローカルホストでは機能しますが、サーバーでは機能しません。

StackOverflowとGitHubで提供されているすべてのソリューションを試しましたが、うまくいきませんでした。

32
Amanshu Kataria

私は同様の問題を抱えており、私は初心者なので、誰かがコメントするいくつかの事実があります:

この方法で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つの要求が報告されます。 Edge execution 実行Chrome my HTML(index.htm)はFailed to fetchエラーを表示し、Networkタブはこの2つのリクエストを報告します Chrome execution 2列目の値はblocked:otherであり、[コンソール]タブにもエラーがあります。

GET https://script.googleusercontent.com/macros/echo?user_content_key=D-ABF ... net :: ERR_BLOCKED_BY_CLIENT

インストールされているChrome=拡張機能を一時停止するために、シークレットウィンドウでコードを実行しましたが、エラーメッセージは表示されず、[ネットワーク]タブに次の2つのリクエストが表示されます: Incognito execution

私の推測では、何か(拡張?)がChrome=がリクエストの回答を読み取ることを妨げています(GETリクエストはブロックされています)。

0
S. Hristov