IOS6 Safari Ajax Spinner

问题描述:

我可以在IOS6上做一个CORS Ajax post工作正常,但是有一些非常奇怪的行为表示浏览器正在加载内容,尽管请求已完成。IOS6 Safari Ajax Spinner

我已经提供了演示了此行为的实时网页here

而对于Node.js的源+ Express服务器可用here

注意这只发生在iOS6的,此外它之间的行为不一致例如,您可以导航到同一选项卡上的另一个页面,它将继续旋转,但打开第二个选项卡,加载页面,然后关闭第一个选项卡,然后它就会消失。

此外,如果您运行测试页面,然后使用相同的浏览器选项卡转到其他网站,微调控制器将继续在新网站上旋转。

所以我在寻找的是一些可能使这种行为以合理方式进行的破解,我对不使用Ajax,CORS或POST不感兴趣。

感谢您花时间和看看。

更新:苹果已经证实了这个问题,但没有更多,所以只会拭目以待下一个版本是否修复它。我将停止测试服务器,但保留可用的文件。

把它放在你的代码中。

$(document).ready(function(){ 
    getUpdates(); 
}); 

function getUpdates() { 
    $.post("status.jsp", {}, function(status){ 

     // do client-side rendering here 

     setTimeout(getUpdates, 5000); 
    }, "json"); 
} 

访问此站点以了解更多信息。 http://www.devthought.com/2012/09/22/understanding-the-ios6-ajax-bugs/

+0

这没有帮助,但谢谢。 – Jim 2013-05-15 13:21:55

+1

我的问题已被Apple关闭并标记为重复,但他们不允许您查看它是重复的问题! – Jim 2013-09-23 09:28:53

我今天刚刚独立发现了这个问题。我减少了测试用例,发现这只发生在触发预检请求的CORS请求上。因此,我认为这与两项要求相继发起的请求有关。选择,然后无论您的要求是什么方法。

只要触发预检科CORS请求,微控制器永远不会消失,在什么阶段您触发请求也无关紧要。

更新:刚刚尝试过iOS7测试版,并且此错误仍存在。

+0

有用的分析,我被告知这将在IOS7固定 – Jim 2013-06-05 10:58:14

+0

只是想知道你是否已经提出了苹果的问题?如果是这样,您可以将详细信息添加到http://openradar.appspot.com/,以便我们可以公开跟踪此问题。 – 2013-06-06 00:39:04

+0

是的,仍然在iOS7中破碎... – Jim 2013-09-23 09:27:29