背景
即將上線的React Native項(xiàng)目蝗柔,一直是用fetch localhost來訪問本地后臺的數(shù)據(jù)的竟秫。老板突然想在手機(jī)上看看項(xiàng)目運(yùn)行效果陪竿。于是我搭建了外網(wǎng),把fetch URL指向外網(wǎng)IP简卧,得到Error.后臺斷點(diǎn)兔魂,根本沒進(jìn)來,也就是說React Native fetch根本沒有訪問到后臺贞滨。
于是降級了React Native版本入热,又或者修改fetch為127.0.0.1,也不行拍棕!
最終在React Native Issue 找到ATS.
ATS
ATS 是一個(gè)iOS 9增加的安全策略晓铆,默認(rèn)只允許HTTPS請求.于是React Native應(yīng)用的HTTP請求會被阻止。
你需要移除Info.plist里的NSAllowsArbitraryLoads屬性绰播。需要了解更多有關(guān)如何配置ATS骄噪,請移步ATS配置.
代碼
配置NSAllowsArbitraryLoads:true,訪問外網(wǎng)成功!
Paste_Image.png