J'ai une application, dans laquelle j'utilise fetch pour authentifier l'utilisateur. Cela fonctionnait jusqu'à il y a quelques jours et je n'ai rien changé. J'ai juste mis à jour de react 0.27 à 0.28, maintenant fetch ne fonctionne pas.
J'ai cherché pendant presque 2 jours et j'ai lu presque toutes les questions sur Stack Overflow. La plupart des utilisateurs essaient de récupérer quelque chose depuis localhost, et quand ils le changent en adresse IP réelle, cela fonctionne. Mais je ne récupère rien depuis localhost, mon code fonctionnait aussi.
Voici mon code:
fetch('http://somesite.com/app/connect', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'language':'en-US',
'Authorization': 'Bearer ' + access_token,
},
body: JSON.stringify({
uid: uid,
refresh_token: refresh_token,
token: access_token,
device: device_id,
device_name: device_name,
})
})
.then((response) => response.json())
.then((responseData) => {
console.log(JSON.stringify(responseData.body))
})
.catch((err)=> {
console.log('Certaines erreurs se sont produites');
console.log(err);
})
.done();
J'ai essayé de créer de nouveaux projets, simples, j'ai juste utilisé un exemple de fetch simple dans les tutoriels, cela m'a donné la même erreur. J'ai essayé d'ouvrir mon site web auquel j'essaie de me connecter, à travers un navigateur dans l'émulateur, cela fonctionne, mais il semble que mon application ne puisse pas se connecter à un site web/IP. Cela donne cette erreur dans la console Chrome:
TypeError: échec de la requête réseau
à XMLHttpRequest.xhr.onerror (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:28193:8)
à XMLHttpRequest.dispatchEvent (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:14591:15)
à XMLHttpRequest.setReadyState (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:29573:6)
à XMLHttpRequest.__didCompleteResponse (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:29431:6)
à http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:29506:52
à RCTDeviceEventEmitter.emit (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:13428:23)
à MessageQueue.__callFunction (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11999:23)
à http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11906:8
à guard (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11857:1)
à MessageQueue.callFunctionReturnFlushedQueue (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11905:1)
En fait, j'ai le même problème que cet utilisateur ici : Les demandes réseau de réagir toujours échouent
0 votes
Qu'avez-vous sous
NSAppTransportSecurity
dans votre fichier info.plist pour votre application?0 votes
Merci pour votre réponse. J'ai ajouté une capture d'écran au message principal. Vous pouvez également la voir ici i.stack.imgur.com/vvqMk.png
0 votes
@Ataomega Avez-vous essayé de redémarrer votre ordinateur ?? J'avais le même problème et un simple redémarrage l'a résolu.
0 votes
Vraiment, je ne me souviens pas combien de fois j'ai redémarré mon ordinateur. Après chaque changement que j'ai effectué. Réinitialiser l'émulateur, redémarrer l'ordinateur ... réinstaller React Native et ...
0 votes
Après 3 jours, le problème a finalement été résolu en rétrogradant le react native.
0 votes
Faisant face au même problème!
0 votes
@Ataomega omg, je ne vais pas rétrograder pour ça :(
0 votes
Qu'en est-il d'Android ? Je rencontre le même problème sur Android également.
0 votes
@Ataomega à quelle version de RN avez-vous rétrogradé, je fais face à la même erreur sur Android avec RN 0.49.3
0 votes
Je suis reconnaissant d'être revenu à la version 0.45.2, j'ai perdu toute ma journée à essayer cette solution de changement d'adresse IP.