繁体   English   中英

来自 Capacitor App 的 iOS 模拟器网络错误

[英]Network Error on iOS emulator from Capacitor App

我正在使用带有 axios 的 Angular Capacitor v3。 向任何外部服务器发出任何请求时收到网络错误。 这仅在使用 XCode 进行仿真时发生。 请求永远不会到达服务器,只是立即以状态 0 返回。

我无法在 Windows、已发布的网站、Android Studio 模拟器或发布到 android 设备上本地重复此问题。

不确定我是否缺少权限或配置,但我尝试添加“本地网络使用情况”、“始终使用位置和使用时位置”权限,并在 Info.plist 中使用 NSAppTransportSecurity 设置。

我不相信这是服务器的问题,因为它似乎从未到达过它。 但我有一个经过验证的 HTTPS 证书,由 Azure 托管,具有有效的 CORS 规则。

我也尝试过使用 Angular 的 HttpClient,结果相同。

错误立即发生并且没有提供具体信息,但这里是消息:

{"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"未知错误","url":"https:/ /jsonplaceholder.typicode.com/users/1","ok":false,"name":"HttpErrorResponse","message":"Http失败响应https://jsonplaceholder.typicode.com/users/1 :0未知错误","error":{"isTrusted":true}}

我只是面临同样的问题它在不同的域上工作,没有主机名不同,它停止工作。 所以它甚至不会向服务器发出请求。 同样的配置也适用于 android。 只是不是IOS

经过广泛的研究和从头开始重建,我发现这是一个与 CORS 相关的问题,但特定于使用 Azure 进行设置,这是我的托管服务器。 令人困惑的部分是,即使是外部示例调用,例如“http://jsonplaceholder.typicode.com/users/1”仍然给出相同的错误,据我所知,不会有 CORS 问题。 如果有人知道为什么会这样,请告诉我。

这与在 ios 中不能使用 http/https 方案,而是使用capacitor Azure 应用服务 CORS 设置中不允许使用此方案,除非您允许所有,但我不能,因为我需要启用 Access-Control-Allow-Credentials。 因此,我必须使用 C# 应用程序服务代码中允许的capacitor方案构建 CORS 配置。 从 Azure 应用服务中的 CORS 中删除所有设置,然后允许应用我的 C# 代码中的设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM