iOS v12 Https 请求错误
iOS v12 Https requests errors
我注意到我的 Ionic Angular 应用程序在 iOS v12 上发出的 https 请求分别失败,永远不会到达我的后端。
我可以确认我的应用程序是高效的,而且这个错误只发生在 iOS >= v12
当我在 Xcode 10 beta 中调试时,出现以下错误
{“headers”:{“normalizedNames”:{},“lazyUpdate”:null,“headers”:{}},“status”:0,“statusText”:“Unknown Error”,“url”:null,“ok”:false,“name”:“HttpErrorResponse”,“message”:“Http failure response for (unknown url): 0 Unknown Error”,“error”:{“isTrusted”:true}}
我的节点/Express.js后端设置如下headers
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 请求时我不会遇到问题。 ..你也可以确认一下吗?
更新 2
在接下来的discussion/issue、https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/112中,我们也赌iOS版本本身的bug。让我们看看它是否会在下一个测试版中得到纠正
更新 3
Xcode 10 beta 2
分别 iOS 12 beta 2
2018 年 6 月 19 日星期二发布解决了我的问题
测试有问题,在iOS12,下面两种方式不会运行进入这个问题
- 请求 HTTP
- post 使用 form-data 请求,而不是 json。如果你 post 与 JSON, 将触发选项请求,但 webkit 不是 post 这个请求,所以跨域失败
我非常有信心这只是一个 beta 1 错误,没有经过确认的解决方法。在 WWDC 期间,我从未找到机会亲自验证这一点,但它似乎得到了多个来源的证实,包括 open radar 上的这个错误。我将直接向 Apple 提交一个额外的错误,并会根据任何回复更新我的答案。
更新:
我在 iOS 12 beta 2 上测试了多个设备,问题似乎已解决。没有关于向 Apple 提交的错误的更新,但我假设它已在最新更新中得到解决。
更新2:
Apple 终于关闭了我修复的错误。
问题是 iOS 12 beta 1
的内部问题
Xcode 10 beta 2
分别 iOS 12 beta 2
2018 年 6 月 19 日星期二发布解决了我的问题
我注意到我的 Ionic Angular 应用程序在 iOS v12 上发出的 https 请求分别失败,永远不会到达我的后端。
我可以确认我的应用程序是高效的,而且这个错误只发生在 iOS >= v12
当我在 Xcode 10 beta 中调试时,出现以下错误
{“headers”:{“normalizedNames”:{},“lazyUpdate”:null,“headers”:{}},“status”:0,“statusText”:“Unknown Error”,“url”:null,“ok”:false,“name”:“HttpErrorResponse”,“message”:“Http failure response for (unknown url): 0 Unknown Error”,“error”:{“isTrusted”:true}}
我的节点/Express.js后端设置如下headers
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 请求时我不会遇到问题。 ..你也可以确认一下吗?
更新 2
在接下来的discussion/issue、https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/112中,我们也赌iOS版本本身的bug。让我们看看它是否会在下一个测试版中得到纠正
更新 3
Xcode 10 beta 2
分别 iOS 12 beta 2
2018 年 6 月 19 日星期二发布解决了我的问题
测试有问题,在iOS12,下面两种方式不会运行进入这个问题
- 请求 HTTP
- post 使用 form-data 请求,而不是 json。如果你 post 与 JSON, 将触发选项请求,但 webkit 不是 post 这个请求,所以跨域失败
我非常有信心这只是一个 beta 1 错误,没有经过确认的解决方法。在 WWDC 期间,我从未找到机会亲自验证这一点,但它似乎得到了多个来源的证实,包括 open radar 上的这个错误。我将直接向 Apple 提交一个额外的错误,并会根据任何回复更新我的答案。
更新: 我在 iOS 12 beta 2 上测试了多个设备,问题似乎已解决。没有关于向 Apple 提交的错误的更新,但我假设它已在最新更新中得到解决。
更新2: Apple 终于关闭了我修复的错误。
问题是 iOS 12 beta 1
Xcode 10 beta 2
分别 iOS 12 beta 2
2018 年 6 月 19 日星期二发布解决了我的问题