ios - React Native Expo IOS 限制接收 HTTP 请求
问题描述
我已经构建了一个 Express 服务器,但在使用 IOS 路由时遇到问题,我正在我的 IOS 手机上运行该应用程序。
我有一个 Expo 应用程序,我在 app.json 的 IOS 下添加了下面的 infoPlist
"infoPlist": {
"supportsTablet": false,
"infoPlist": {
"NSAllowsArbitraryLoads": {
"NSAllowsArbitraryLoads": true
}
}
},
我只是想运行下面的提取,但我得到“网络请求失败”
useEffect(() => {
fetch("http://localhost:3000/api/listing")
.then((response) => setData(response))
.catch((error) => console.error(error))
.finally(() => setLoading(false));
}, []);
是否有当前的解决方法?
解决方案
默认情况下,iOS 将阻止任何未使用 SSL 加密的请求。如果您需要从明文 URL(以 http 开头的 URL)获取,您首先需要添加应用程序传输安全异常。如果您提前知道需要访问哪些域,则只为这些域添加例外会更安全;如果直到运行时域才知道,您可以完全禁用 ATS。但请注意,从 2017 年 1 月起,Apple 的 App Store 审核将需要合理的理由来禁用 ATS。有关详细信息,请参阅 Apple 的文档。
在反应本机站点链接上
在我看来,最好使用 https url 来获取
推荐阅读
- python - 图像未在生产中显示( DEBUG =False )
- python-3.x - 即使有值,查询集也会返回空值
- spring - 缺少访问控制允许来源
- flutter - 如何在flutter中的某个事件后触发警报?
- c - memcmp 究竟返回了什么?
- regex - 如何在该行某处某行中的特定字符串之后从文本文件中获取一个数字?
- postgresql - 使用 pgcrypto (PostgresQL) 解密 AES GCM 256
- php - Laravel Eloquent - 关系和方法。何时使用 ->users() 与 ->users
- angular - 如何在 NGXS 中等待两个动作
- r - 使用 R 进行顶点连接计算