以下逻辑用于在我们支持的所有移动设备上同时使用jquery 1.4.4和1.7.1:
$.ajax({ url: 'http://www.example.com/someurl', type: 'GET', dataType: 'text', timeout: 60000, success: function(data) { alert(data); }, error: function(jqXHR) { alert(jqXHR.state()); } });
但是在iOS 5.0.1中,上面的代码输入了错误功能警报,rejected而没有任何实际的HTTP请求。在我需要重新启动iPhone之前,似乎只有一个AJAX请求可以工作。这是已知的jquery / iOS 5.0问题吗?我该如何调试?有什么解决方法吗?我不知道从哪里开始寻找。
rejected
注意 :我注意到在服务器端,发出请求而不是GET请求OPTIONS。这似乎是一个相关的问题:
GET
OPTIONS
http://spin.atomicobject.com/2012/01/20/mobile-safari-on- ios-5-1-unexpectedly-making-cross-origin-resource-sharing- requests/
我在问题中提供的链接实际上指向解决方案。我的一些Ajax请求用于获取使用以下文件流式传输的PDF的URL:
Content-Disposition: attachment; filename="somename.pdf"
显然,这会导致iOS 5.0的Safari出现重大问题,从而破坏XMLHttpRequest对象(与jquery无关)。疯。再次是链接:
XMLHttpRequest