J'utilise fetch API dans mon React application. L'application a été déployée sur un serveur et fonctionnait parfaitement. Je l'ai testée plusieurs fois. Mais, tout à coup, l'application a cessé de fonctionner et je ne sais pas pourquoi. Le problème est lorsque j'envoie une demande get
, je reçois une réponse valide du serveur, mais l'API fetch intercepte une exception et affiche TypeError: failed to fetch
. Je n'ai même pas apporté de modifications au code et c'est le problème avec tous les composants React.
Je reçois une réponse valide.
Mais aussi obtenir cette erreur en même temps.
fetch(url)
.then(res => res.json())
.then(data => {
// do something with data
})
.catch(rejected => {
console.log(rejected);
});
Lorsque je supprime credentials: "include"
, cela fonctionne sur localhost, mais pas sur le serveur.
J'ai essayé toutes les solutions proposées sur StackOverflow et GitHub, mais cela ne fonctionne tout simplement pas pour moi.
J'ai un problème similaire et comme je suis un débutant, voici quelques faits à dire à quelqu'un:
J'envoie les données du formulaire à la feuille Google de cette façon (scriptURL est https://script.google.com/macros/s/AKfy ..., showSuccess () montre une image simple):
fetch(scriptURL, {method: 'POST', body: new FormData(form)})
.then(response => showSuccess())
.catch(error => alert('Error! ' + error.message))
Exécuté dans Edge, mon HTML n'affiche pas d'erreur et l'onglet Réseau signale ces 3 demandes: Exécuté en Chrome mon HTML (index.htm) affiche Impossible de récupérer l'erreur et l'onglet Réseau le signale 2 demandes: La valeur dans la deuxième colonne est bloquée: autre et il y a aussi une erreur dans l'onglet Console:
OBTENIR https://script.googleusercontent.com/macros/echo?user_content_key=D-ABF ... net :: ERR_BLOCKED_BY_CLIENT
Afin de suspendre les extensions Chrome Chrome installées, j'ai exécuté mon code dans une fenêtre de navigation privée et il n'y a pas de message d'erreur et l'onglet Réseau signale ces 2 demandes:
Je suppose que quelque chose (extension?) Empêche Chrome de lire la réponse de la demande (la demande GET est bloquée).