【发布时间】:2015-10-20 15:09:03
【问题描述】:
我正在开发一个支持 iOS 8 和 9 的应用,在我的应用中使用 WKWebView 获取一些视图。
我暂时将我的网站和子域列入了 ATS 的白名单(等待一些 SSL 证书更改)。所以我认为我要描述的内容与 ATS 无关,但谁知道呢。
我的本机代码在我的 WKWebView 中调用一个 javascript 函数,该函数使用 jQuery 触发 ajax GET 请求。
在 iOS 8 中,它每次都能正常工作。
在 iOS 9 中,它仅在某些时候有效。似乎不到一半的时间。
当我在我的 iPhone 连接到的桌面上使用 Safari 开发者控制台连接到 WKWebView 时,我能够看到这个错误:
Failed to load resource: cancelled
据我所知,甚至从未发出过网络请求。我已经盯着这个问题两天了,无法辨别为什么网络请求被“取消”。在某些情况下,我确实对我的 ajax 请求调用了 .abort(),但是当我诊断出这个问题时,我已经将所有这些都注释掉了。
有没有其他人在 iOS 9 中遇到过类似 iOS 8 中没有的任何新的 ajax 问题?
知道如何弄清楚什么是“取消”ajax 请求吗?我已经尝试了我能想到的所有调试技巧,但是调试 WKWebView ajax 并不是那么容易。
【问题讨论】:
-
你解决过这个问题吗?我也遇到了同样的问题。
-
@Nancy 检查我刚刚发布的答案。不知道它为什么对我们有用,我的猜测只是 ajax 请求被取消了,因为发起请求的控制器在请求时被解除(即使请求实际上是在另一个控制器中发生的.. .)。
¯\_(ツ)_/¯