Wenn ich ein brandneues Projekt mit react-native init
(RN Version 0.29.1) erstelle und einen Abruf in die Rendermethode für die öffentliche Facebook-Demo-Movie-API lege, wird ein Network Request Failed
ausgelöst. Es gibt einen sehr nutzlosen Stack-Trace und ich kann keine Netzwerkanforderungen in der Chrome-Konsole debuggen. Hier ist der Abruf, den ich sende:Reactive Native fetch() Netzwerkanforderung fehlgeschlagen
Antwort
Das Problem hier war, dass iOS HTTP-Anfragen standardmäßig nicht erlaubt, nur https Wenn Sie HTTP-Anfragen aktivieren möchten, fügen Sie diese zu Ihrer info.plist hinzu:
Diese Antwort hat für mich gearbeitet. Für andere neu zu React Native, diese Datei (info.plist) kann auch über xcode bearbeitet werden: http://stackoverflow.com/a/38219454/1299792 – Marklar
seine nicht hinzufügen, sondern ersetzen. Der Code befindet sich bereits in der Datei info.plist. Sie müssen den Abschnitt ersetzen oder Sie erhalten einen Fehler. – osuthorpe
was ist mit Android? Ich habe dasselbe Problem auch bei Android. – Kumar
Nicht empfohlen, alle Domänen für http zuzulassen. Machen Sie eine Ausnahme nur für die erforderlichen Domänen.
Quelle: Configuring App Transport Security Exceptions in iOS 9 and OSX 10.11
Fügen Sie den folgenden auf die info.plist Datei Ihrer App:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourserver.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
was ist mit Android? – arisalexis
Es scheint mehrere Info.plist-Dateien in mehreren Verzeichnissen in meiner React Native App zu geben. Irgendeine Idee, welcher Ordner die korrekte zu ändernde Datei enthält? – Marklar
@Marklar [Ihr_Projektordner_Name]/ios/[Ihr_Projektordner_Name] /Info.plist – Stich
Nur Sie haben Änderungen in Fetch ....
fetch('http://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
/*return responseJson.movies; */
alert("result:"+JSON.stringify(responseJson))
this.setState({
dataSource:this.state.dataSource.cloneWithRows(responseJson)
})
}).catch((error) => {
console.error(error);
});
india Reagieren Docs gibt die Antwort dafür.
Apple hat das implizite Klartext-HTTP-Ressourcenladen blockiert. Daher müssen wir die Datei Info.plist (oder gleichwertig) unseres Projekts hinzufügen.
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
React Native Docs -> Integration With Existing Apps -> App Transport Security
Für Android, haben Sie die Erlaubnis in AndroidManifest.xml hinzufügen verpasst Sie möchten die folgende Berechtigung hinzuzufügen.
<uses-permission android:name="android.permission.INTERNET" />
Das Problem kann in der Serverkonfiguration sein.
Android 7.0 hat einen Fehler described here. Die von Vicky Chijwani vorgeschlagene Problemumgehung:
Konfigurieren Sie Ihren Server, um die elliptische Kurve prime256v1 zu verwenden. Für Beispiel, in Nginx 1.10 tun Sie dies, indem Sie ssl_ecdh_curve setzen prime256v1;
Ich benutzte localhost
für die Adresse, die offensichtlich falsch war. Nach dem Ersetzen durch die IP-Adresse des Servers (in dem Netzwerk, das der Emulator ist), funktionierte es perfekt.
- 1. React-Native Fetch, Netzwerkanforderung fehlgeschlagen. nicht mit localhost
- 2. React-native IOS, TypeError: Netzwerkanforderung fehlgeschlagen
- 3. Reactive Native Android Fetch bei Verbindung mit lokaler API fehlgeschlagen
- 4. FBSDK sichere Netzwerkanforderung fehlgeschlagen iOS9
- 5. Wie man ein Formular mit fetch in reactive native?
- 6. npm reactive-native-fetch-blob - "RNFetchBlob.fetch ist keine Funktion"
- 7. Native Anzeigen in Reactive Native
- 8. Reactive Native fixed footer
- 9. Reactive Native Navigator Routen
- 10. Reactive Native onHostDestroy()
- 11. Reactive Native File Chooser
- 12. Reactive Native View Rendern
- 13. Reactive Native Infinite Scroll
- 14. Native Post-Anfrage über Fetch-Throws beantworten Netzwerk-Anfrage fehlgeschlagen
- 15. Reactive Native - Aufruf im Cache cached
- 16. Reactive Native Listview verlassen Raum
- 17. reactive-native android duplicate declaration
- 18. Reactive Native onActivityResult funktioniert nicht
- 19. Reactive Native auf Port 80
- 20. Reactive Native ListView: Artikel voranstellen
- 21. reactive-native: Befehl nicht gefunden
- 22. Manifest fetch fehlgeschlagen (9)
- 23. Reactive Native Network Image wird nicht gerendert
- 24. React-Native fetch XML-Daten
- 25. React Native Fetch() funktioniert nicht
- 26. Reactive Native, AwesomeProject, reagieren-native run-ios: ** BUILD FAILED **
- 27. Reactive native Erforderlich Unbekanntes Modul für benutzerdefinierte native Komponente
- 28. JavaScript - Ein Bild hinzufügen: Reactive Native XCode
- 29. Reactive Native ListView - rowHasChanged feuert nicht
- 30. Reactive Native 23.1 unerwartetes Token (14: 6)
Ich bin mir nicht sicher. Ich benutze den iOS-Simulator und ich dachte, es verwendet die Internetverbindung meines Computers –
Versuchen Sie, den Simulator manuell zu laden und öffnen Sie die URL in Safari – FuzzyTree
'http' ->' https' (wenn möglich) wird höchstwahrscheinlich Ihr Problem beheben –