iOS 7 javascript XMLHttpRequest bug

iOS 7 javascript XMLHttpRequest bug

本文关键字:bug XMLHttpRequest javascript iOS      更新时间:2023-09-26

这篇文章一半是问题 - 一半是公告。 我开发iOS应用程序,其中包括执行JavaScript代码的UIWebView。当我在装有新iOS 7的设备上运行该应用程序时,某些功能不起作用。经过长时间的调试,我设法找出了原因。Javascript AJAX有一个打开构造函数方法的请求API:

XMLHttpRequest.open(method,url,async)

如果调用应该阻塞,则"异步"参数为假,否则为真。仅在iOS 7 Safari上的问题是,如果"异步"为假,则此方法会引发异常。

因此,希望这对遇到相同问题的任何人来说都会有所帮助,如果有人可以了解此错误或解决方法,那就太好了

谢谢!

UIWebview 不允许在 IOS7 中使用同步 XHR。

这是WebView和Safari(确实允许它们)之间令人沮丧的差异之一。

解决方法:

  1. 创建一个发出同步HTTP请求的Objective-C函数。

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

当然,如果你想要任何好处,比如缓存,你必须自己实现。

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