电容器应用程序的iOS模拟器网络错误



我使用的是带有axios的Angular Capacitor v3。在向任何外部服务器发出任何请求时收到网络错误。这只发生在用XCode模拟时。请求从未到达服务器,只是立即返回状态为0。

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

不确定我是否缺少权限或配置,但我已经尝试添加"本地网络使用","始终位置"one_answers"在使用时";在Info.plist中设置NSAppTransportSecurity。

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

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

错误立即发生,没有给出具体的信息,但这里是消息:

{"headers"{"normalizedNames"{},"lazyUpdate":空,"headers":{}},"status": 0,"statusText":"未知Error"url":"https://jsonplaceholder.typicode.com/users/1","ok":假的,"name":"HttpErrorResponse","message":"Http对于https://jsonplaceholder.typicode.com/users/1: 0的失败响应未知Error","Error"{"isTrusted"真}}

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

这与在ios中不能使用http/https方案有关,而是使用capacitor。在Azure应用程序服务CORS设置中不允许此方案,除非您允许所有,但我不能,因为我需要启用访问-控制-允许-凭据。因此,我必须使用c#应用程序服务代码中允许的capacitor方案构建CORS配置。在Azure应用程序服务中删除CORS的所有设置,然后允许我的c#代码中的设置被应用。

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

最新更新