我在本地 apache/test
实例/test/info
(jQuery.ajax
iOS模拟器,没有调用,页面刷新。
window.getInfo = function ( event ) {
console.log('1) prior to $.ajax');
$.ajax({
url: 'http://localhost/test/info',
dataType: 'html',
beforeSend: function(xhr) {
console.log('2) beforeSend');
},
success: function(data, textStatus) {
console.log('3) success');
if ( textStatus == 'success' ) {
// doing stuff with data
}
}
}).always( function() { console.log('4) always'); });
};
从桌面浏览器打印所有日志,并且我的 apache 服务器报告了一个请求/test
,但在 iOS 模拟器中的 Safari 上,只打印了'1) prior to $.ajax'
和'2) beforeSend'
日志,并且对 apache 发出的下一个请求是 for /test
。
有谁知道这里发生了什么,以及如何让 iOS 正常运行?
更新:当我将async: false
属性添加到ajax调用时,所有日志都被打印出来,并发出请求,这样基本上就解决了这个问题;但是页面仍然会重新加载,我认为这是与 iOS 上的事件传播相关的另一个问题。