iOS 7 JavaScript的XMLHttpRequest错误

这篇文章是半问题 – 半公告..我开发iOS应用程序,其中包括执行JavaScript代码的UIWebView。 当我用最新的iOS 7在设备上运行应用程序时,一些function不起作用。 经过长时间的debugging,我设法隔离了原因。 JavaScript的AJAX有一个请求API与构造方法打开:

XMLHttpRequest.open(方法,URL,asynchronous)

如果调用应该被阻塞,否则“asynchronous”的说法是错误的。 iOS 7 safari上的问题在于,如果“async”为false,则此方法会引发exception。

所以,希望这可以帮助你遇到同样的问题,如果任何人都可以看到这个错误或解决方法,这将是伟大的

谢谢!

UIWebview不允许IOS7中的同步XHR。

这是WebView和Safari(允许它们)之间令人沮丧的区别之一。

解决方法:

  1. 创build一个使同步HTTP请求的Objective-C函数。

  2. 从JavaScript调用该函数 。 (这是同步发生的。)

当然,如果你想要caching的好处,你必须自己实现。

苹果认为要求解决方法是一个好主意,这有点令人困惑。