jquery ajax请求总是error的原因

今天写一个jQuery.ajax方法的时候,无论怎么搞都只会调用error对应的函数。

后来发现,是因为在这一段jQuery后面我加了一行重新reload页面:

var the_id = xxx
jQuery.ajax() {
    url : "del_setting",
    data : { id : the_id },
    dataType : "text",
    success : function() {
        alert("success");
    },
    error : function() {
        alert("error");
    }
}
window.location.reload();

因为AJAX是异步加载的,所以之后的页面重载会导致AJAX请求发送失败(Firefox,对于googlechrome,请求会发送出去,但仍然执行的是error的function)。

把window.location.reload();写到success或error的回调函数中即可。或者把请求设置为同步的,方法为在jQuery.ajax()方法中,指定参数async:false。

相关推荐