看起来jQuery的.ajax函数'success'即使没有得到服务器的响应也会激活该函数.我认为这是一个错误.我检查了这个事件,检查'request.status===0'是否有任何其他实例,我应该检查'success'函数将被触发的位置,即使出现错误情况?
我已经发布了下面我正在使用的代码.这种情况通常如何处理?
$.ajax({
async : true, cache : false, dataType : 'json',
type : 'POST',
url : 'person/' + personKey,
data : JSON.stringify({firstName:'Jilopi',}),
success : function(data, textStatus, request){
if( request.status === 0 ){
alert('Error: problem saving person - no response');
}else{
alert('Success: saved person');
}
},
error : function(request, textStatus, errorThrown){
alert('Error: problem saving person');
},
});
Run Code Online (Sandbox Code Playgroud)
你已经确定了我所知道的唯一"错误成功"问题.在其上详细一点:这是一个变通代替严格的歌剧院(返回什么是真正一个304为0),你可以看到在评论1.4.2这里(和以前的版本):HTTP:// github上. COM/jQuery的/ jQuery的/ BLOB/1.4.2/src目录/ ajax.js#L551
但是,它已在jQuery 1.4.3中被删除,因为您确切的问题,您可以在此处看到它所做的更改.
简短回答:升级到jQuery 1.4.3+以解决您的问题,您可以取消status === 0支票.
| 归档时间: |
|
| 查看次数: |
765 次 |
| 最近记录: |