阿兹老驴 2012-09-24 21:11
浏览 224
已采纳

关于JQuery Ajax Error调用的问题

问题:用Ajax写了测试代码如下:
一个文本框,一个按钮,Click事件绑定到下面方法上:
function postNote(){
var data=$('#content').serialize();
$.ajax({
type:"post", url:"noteCreate.do", dateType:"json", data:data,
error: function(XmlHttpRequest, textStatus, errorThrown){
alert(XmlHttpRequest.status);
alert("提交失败!请联系管理员。")
},
success: function(data,textStatus){
alert(textStatus);
alert("提交成功!");
}
});

服务器端代码无误,这里就不写了。测试发现问题,我在Tomcat启动时,打开页面,然后关闭Tomcat。点击按钮,结果在IE上正确调用error的处理方法,但是在Firefox和Chrome上均调用succuss方法处理。用Firebug观察返回结果,发现已经没有响应内容了,但依然调用success。
$.ajax上我加了cache:"false"和async:"false",依然无效。设置Timeout:"2000"后可以正常,但我觉得不能通过设置Timeout来解决该问题。
求正解。

  • 写回答

6条回答 默认 最新

  • jinnianshilongnian 2012-09-25 13:11
    关注

    这是1.4.2及以下版本的处理bug。 1.4.3已经修复
    [url]http://bugs.jquery.com/ticket/6060[/url]

    如果需要在1.4.2下用可以加patch
    [url]http://bugs.jquery.com/attachment/ticket/6060/0001-Fix-jQuery.ajax-success-function-being-called-when-H.patch[/url]

    或者使用如下两种方式解决
    1、修改success
    success: function(data,textStatus, jqXHR){
    if (jqXHR.readyState === 4 && jqXHR.status === 0) {
    alert("提交失败!请联系管理员。");
    }else {
    alert("提交成功!");
    }
    }

    2、设置timeout

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器