2017-04-07 5 views
0

Ich habe Login-Funktion in React Native, wo ich versuche, Daten zu holen. Die Funktion ist wie folgt:Fetch funktioniert nicht in React Native ios

onLogin: function() { // 
     const self = this; 
     self.setState({modalVisible: true, modalMessage: 'Signing in'}); 
     fetch('http://psa.autralis.com/manager/api/v1/obtain-auth-token/', { 
      method: 'POST', 
      headers: { 
       'Content-Type': 'application/json', 
      }, 
      body: JSON.stringify({ 
       username: self.state.username, 
       password: self.state.password, 
      }) 
     }) 
      .then(response => response.json()) 
      .then(data => console.log(data)) 
      .catch((error) => { 
       console.warn(error); 
      }); 
    }, 

Aber aus irgendeinem Grund funktioniert es nicht auf ios. Ich erhalte eine Fehlermeldung:

enter image description here

auf Android es funktioniert, und ich getestet es mit Postbote und es funktioniert auch.

Irgendeine Idee?

Antwort

1

Der Grund für dieses Problem ist, dass: iOS HTTP-Anfragen standardmäßig nicht erlaubt, nur https. Wenn Sie dies mit http tun müssen, ändern Sie einfach Ihre info.plist:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 
+0

ich es schon gelöst und ich hinzugefügt, um eine Lösung. Aber ich werde deine Antwort akzeptieren. – Boky

0

Falls jemand anderes es braucht. Ich löste es durch

<key>NSAllowsArbitraryLoads</key> 
<true/> 

zu einer Info.plist Datei hinzufügen, die innerhalb ios Ordner in Ihrem Projekt befinden.

So änderte ich

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
     <key>localhost</key> 
     <dict> 
      <key>NSExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
     </dict> 
     </dict> 
    </dict> 

mit

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
     <key>NSExceptionDomains</key> 
     <dict> 
     <key>localhost</key> 
     <dict> 
      <key>NSExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
     </dict> 
     </dict> 
    </dict> 
Verwandte Themen