2017-04-07 10 views
0

데이터를 가져 오려고하는 네이티브에 로그인 기능이 있습니다.가져 오기가 기본 네이티브에서 작동하지 않습니다.

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); 
      }); 
    }, 

을하지만 어떤 이유가 IOS에서 작동하지 않습니다 : 다음과 같은 기능입니다. 나는 오류 얻을 : 작동 안드로이드에

enter image description here

을, 나는 우체부와 함께 테스트도 작동합니다.

아이디어가 있으십니까?

답변

1

이 문제의 원인은 다음과 같습니다. iOS에서 기본적으로 HTTP 요청을 허용하지 않으며 https 만 허용합니다. http로이 작업을 수행하려면 info.plist를 변경하십시오.

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

으로

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

변경. 그러나 나는 당신의 대답을 받아 들일 것입니다. – Boky

0

다른 사람이 필요로하는 경우. 나는 당신의 프로젝트에 ios 폴더 안에 위치한 Info.plist 파일에

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

를 추가하여 해결했다.

따라서 내가 이미 해결 내가 용액을 첨가

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