【发布时间】:2018-11-15 08:34:12
【问题描述】:
我注意到我在 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”:“(未知 url)的 Http 失败响应:0 未知错误”,“error”:{“isTrusted”:true}}
我的 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 的问题?
附: 我打开了 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
在下面的讨论/问题中,https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/112,我们还押注 iOS 版本本身的错误。看看下个测试版会不会改正
更新 3
Xcode 10 beta 2 和 iOS 12 beta 2 于 2018 年 6 月 19 日星期二发布解决了我的问题
【问题讨论】:
-
这似乎是一个广泛传播的问题。任何使用 Web 视图发出请求的应用程序似乎都已损坏。我现在在 WWDC,一旦我收到 Apple 的回复,我会更新答案。
-
@InkGolem Thx,期待苹果的反馈
-
感谢@InkGolem!我相信整个社区都对这个感兴趣。
-
@InkGolem 有关此问题的任何新信息? THX
-
确认这只影响 POST 请求
标签: ios angular express ionic-framework ios12