我一直在尝试更新我的 Cordova iOS 应用程序以使用新的 WKWebView 可插入 Web View ,但我遇到了一个问题,即安装后我无法进行 ajax 调用。当我尝试进行以下调用时,我收到 HTTP 状态 0 的错误结果:
return Promise.resolve($.ajax({
url: 'https://mytestserver.com/settings',
timeout: 10000
}))
我在 iOS 平台 4.0.0 上使用 Cordova 5.4.1,我的测试设备运行的是 iOS 9.2。一旦我删除 WKWebView 插件并且 Cordova 恢复到 UIWebView,此代码就会按预期工作。我尝试过使用和不使用白名单插件 (1.2.0)。
我的 config.xml 包括:
<access origin="*" />
我的 index.html CSP 标签是:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: cdvfile: https://ssl.gstatic.com 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *; img-src *; connect-src https: blob: 'self'; object-src 'self' blob:;">
最佳答案
您是否阅读了文档的限制
部分?
如果您从 UIWebView 升级,请注意使用 WKWebView 的限制,如 our issue tracker 中所述。 .
我认为你的问题是 WKWebView is affected by CORS
所以你必须在服务器上设置Access-Control-Allow-Origin: *
关于ios - 在 iOS 上使用 Cordova WKWebView 插件时,Ajax 调用失败,HTTP 状态为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34270037/