iOS v12 Https请求错误

时间:2018-06-05 18:56:17

标签: ios angular express ionic-framework ios12

我注意到我在iOS v12上的Ionic Angular应用程序发出的https请求分别无法到达我的后端。

我可以确认我的应用是高效的,而且此错误仅发生在iOS> = v12

当我在Xcode 10 beta中调试时,我收到以下错误

  

{“headers”:{“normalizedNames”:{},“lazyUpdate”:null,“headers”:{}},“status”:0,“statusText”:“未知错误”,“url”:null ,“ok”:false,“name”:“HttpErrorResponse”,“message”:“(未知网址)的Http失败响应:0未知错误”,“错误”:{“isTrusted”:true}}

My Node / Express.js后端设置以下标题

var allowedOrigins = ["https://example.com", "http://ionic.local", "http://localhost:8080"];

 var origin = req.headers.origin;
 if(allowedOrigins.indexOf(origin) > -1){
        res.setHeader('Access-Control-Allow-Origin', origin);
 } else {
        res.setHeader("Access-Control-Allow-Origin", "https://example.com");
    }

 res.header("Access-Control-Allow-Credentials", "true") 
 res.header("Access-Control-Allow-Headers", "Origin, Authorization, Content-Type, Content-Range, Content-Disposition, Content-Description, X-Requested-With, X-ACCESS_TOKEN");
 res.header("Access-Control-Allow-Methods", "GET,PUT,POST");

任何人都面临同样的问题? 您在代码中更改了什么来修复iOS v12的问题?

P.S .: 我已经开了Apple的问题

此处还有Ionic论坛上的链接主题:https://forum.ionicframework.com/t/ios-12-beta-preflight-requests-fail

以防万一在WkWebView插件上打开了一个问题:https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/112

更新

我不确定但看起来我只是在查询 POST 请求时遇到问题,我在执行GET请求时没有面对它...你能否确认一下?< / p>

更新2

在下面的讨论/问题https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/112中,我们也在押注iOS版本中的错误。让我们看看它是否会在下一个测试版中得到纠正

更新3

2018年6月19日星期二发布的Xcode 10 beta 2 iOS 12 beta 2解决了我的问题

3 个答案:

答案 0 :(得分:2)

我非常有信心这只是一个没有确认工作的beta 1错误。在WWDC期间,我从来没有找到机会亲自验证,但似乎有很多来源证实,包括open radar上的这个错误。我将直接向Apple提交一个额外的错误,并会通过任何回复更新我的回答。

更新: 我已经在iOS 12 beta 2上测试过多个设备,问题似乎已经解决了。没有关于向Apple提交的错误的更新,但我将假设它已在最新更新中得到解决。

更新2: Apple终于将我的错误关闭了。

答案 1 :(得分:2)

问题是iOS 12 beta 1的内部问题

Xcode 10 beta 2iOS 12 beta 2分别于2018年6月19日星期二发布,解决了我的问题

答案 2 :(得分:-2)

测试是问题,在iOS 12上,以下两种方式不会遇到此问题

  1. 请求 HTTP
  2. 使用表单数据发布请求,而不是 json 。如果您使用 JSON 发布,将触发选项请求,但webkit不会发布此请求,因此交叉域失败