问题
新搭建的一个项目,在使用fetch进行网络请求的时候遇到一个报错:TypeError: Network request failed.
尝试直接在浏览器打开url访问可以正常拿到返回值。(url是http
协议)
原因
这个API请求是http的协议请求,在iOS9以上系统,已经把http协议的请求限制了。
iOS9引入了新特性App Transport Security (ATS)。详情:App Transport Security (ATS)
新特性要求App内访问的网络必须使用HTTPS协议。
解决方案
- 在
xcode
中打开react native
中的ios
项目根目录; - 打开项目下的info.plist文件;
- 在
App Transport Security Settings
下新增Allow Arbitrary Loads
,值为YES
; - 重启react native项目,刷新,请求后返回值正常;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。