背景
即将上线的React Native项目,一直是用fetch localhost来访问本地后台的数据的。老板突然想在手机上看看项目运行效果。于是我搭建了外网,把fetch URL指向外网IP,得到Error.后台断点,根本没进来,也就是说React Native fetch根本没有访问到后台。
于是降级了React Native版本,又或者修改fetch为127.0.0.1,也不行!
最终在React Native Issue 找到ATS.
ATS
ATS 是一个iOS 9增加的安全策略,默认只允许HTTPS请求.于是React Native应用的HTTP请求会被阻止。
你需要移除Info.plist里的NSAllowsArbitraryLoads属性。需要了解更多有关如何配置ATS,请移步ATS配置.
代码
配置NSAllowsArbitraryLoads:true,访问外网成功!