【发布时间】:2012-10-30 09:05:34
【问题描述】:
我尝试进行 jQuery.ajax 调用:
jQuery("#search_form").live("submit", function() {
search_nr = jQuery("#search_input").val();
jQuery.ajax({
url: '/modules/mod_findarticle/process.php',
data: "search_nr="+search_nr,
async: true,
'success': function(data) {
alert(data);
},
'error': function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.status+", " + jqXHR.statusText+", "+textStatus+", "+errorThrown);
}
});
});
作为回报,我总是收到带有 “0,错误,错误,” 消息的警报。 async=false 一切正常。 我知道通过异步调用,脚本会在收到任何实际数据之前完成工作,但是可以做些什么来避免这种情况?
【问题讨论】:
-
如果您在 Firebug 中检查响应,返回的错误代码是什么?
-
你为什么还要设置它?默认情况下是这样。
-
与错误无关,但不推荐使用
.live。你应该使用.on。 -
PHP 返回的是什么数据?是否正确设置了内容类型?
-
感谢您的回复。所以: 1. 错误消息由
alert(jqXHR.status+", " + jqXHR.statusText+", "+textStatus+", "+errorThrown);显示,它显示 0, error, error, 2. 事实上,异步是默认启用的。如果我完全删除 async=true,则没有任何变化。 3. 感谢您的评论,但我怀疑问题与 .live() 有关 4. 我尝试将 dataType 参数添加到 .ajax 调用中,将其设置为“html”或“json”无效。
标签: jquery ajax asynchronous