React Native mac环境下解决iOS 9以上系统对HTTP请求的限制
首页 专栏 react-native 文章详情
0

React Native mac环境下解决iOS 9以上系统对HTTP请求的限制

MangoGoing 发布于 4 月 10 日

问题

新搭建的一个项目,在使用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项目,刷新,请求后返回值正常;
react-native ios9
阅读 91 发布于 4 月 10 日
举报
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar
MangoGoing

蹲一个好厂内推, 有推荐者联系vx: YXC19970131

315 声望
149 粉丝
关注作者
0 条评论
得票数 最新
提交评论
avatar
MangoGoing

蹲一个好厂内推, 有推荐者联系vx: YXC19970131

315 声望
149 粉丝
关注作者
宣传栏
目录

问题

新搭建的一个项目,在使用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项目,刷新,请求后返回值正常;