今天写一个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,对于google chrome,请求会发送出去,但仍然执行的是error的function)。
把window.location.reload();写到success或error的回调函数中即可。或者把请求设置为同步的,方法为在jQuery.ajax()方法中,指定参数async : false。