2017-08-07 24 views

回答

0

你正確地找出來,問題是,iOS的不允許非安全(http只)域任意調用。這是爲了推到開發商更安全的連接與iOS 9中引入的功能。

按本(2017年中期)的寫作,有解決方法。您應該打開

{你的項目}/IOS/{您的項目} /Info.plist

併爲您定位的域設置適當的值(docs)。

下面的例子將禁用ATS和允許HTTP調用somedomain.com

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

在你的情況,我相信你正在尋找在錯誤的地方Info.plist文件。它不是節點模塊的一部分,而是查看上面指定的ios路徑。

+2

我知道我在找什麼。但似乎我正在尋找一些根本不存在的東西。世博項目隱藏本地文件的構建和環境。所以沒有地方可以搜索info.plist – Zafta

1

不幸的是世博會不允許你修改應用程序傳輸安全設置,但在配置選項可以烤。 Here's a Github thread

你可以從eject世博會,但只有這樣做,如果你是100%肯定。

這會給你非常相似,一個由反應本土的init

此設有iosandroid目錄中創建一個項目,導航到ios/YourProject/將揭示Info.plist

需要多少掙扎的是安裝在服務器上的SSL證書?這樣做可能更有益,您可以使用免費服務,如letsencrypt

+0

不,我現在真的不想彈出,但爲什麼這是一個小故障,如果使用fetch是開發人員對ios和android的基本要求。 大多數本地主機服務器不是ssl加密的。應該添加它,因爲它似乎是一個普遍問題。 – Zafta

+1

這與'fetch'無關,通過https進行通信是Apple強制執行的操作。 https://developer.apple.com/news/?id=12212016b – Dan

+0

是的,我的意思是像抓取或Axios一般的通信方法。在臨時或本地主機環境中應該有這方面的鍛鍊。:/ – Zafta