由于 ajax 是异步调用,它不会等待结果,而是跳转到下一行,无论那里写什么。所以在你的情况下,当你调用你的 ajax onsubmit
方法时:
var xhr = $.ajax({}); // here you assign the ajax to a var xhr
在那次通话之后,您曾经使用以下命令将状态输出到控制台:
console.log(xhr.readyState); // logs the state of the ajax
因此,在您的情况下,问题是 ajax 是异步调用,因此每当将 ajax 代码分配给xhr
您之后,您就可以记录状态。所以每次它都会记录1
。
如果您浏览文档,您可以看到有一个complete:fn
回调,您可以使用它:
$('.delsub').on('submit', function (event){
event.preventDefault();
var xhr = $.ajax({
url: 'delRept.php',
type: 'POST',
data: "&delsub=delsub",
success: function(d){
console.log(d);
},
complete:function(xhr){
console.log(xhr.readyState);
console.log(xhr.status);
}
});
});
或者如果您想对不同的状态进行一些操作,那么您可以使用statusCode:{}
:
$('.delsub').on('submit', function (event){
event.preventDefault();
var xhr = $.ajax({
url: 'delRept.php',
type: 'POST',
data: "&delsub=delsub",
statusCode:{
200:function(){
console.log(xhr.readyState);
console.log(xhr.status);
alert('200');
},
304:function(){
console.log(xhr.readyState);
console.log(xhr.status);
alert('304');
}
},
success: function(d){
console.log(d);
}
});
});