【问题标题】:Network Error on iOS emulator from Capacitor App来自 Capacitor App 的 iOS 模拟器上的网络错误
【发布时间】:2021-11-18 16:40:40
【问题描述】:

我正在使用带有 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":"Unknown 错误","url":"https://jsonplaceholder.typicode.com/users/1","ok":false,"name":"HttpErrorResponse","message":"Http https://jsonplaceholder.typicode.com/users/1 的失败响应:0 未知错误","错误":{"isTrusted":true}}

【问题讨论】:

    标签: ios angular xcode capacitor


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-11
        • 2020-09-24
        • 2019-06-04
        • 2021-11-06
        • 2013-02-20
        • 2022-11-28
        • 2017-08-28
        相关资源
        最近更新 更多