2010-10-20 63 views
1

有人能告诉我什么服务器请求代码在jquery ajax($ .ajax)中代表'error'选项吗? 因为我想处理400服务器错误,但我似乎无法使用该'错误'选项。我不知道我是否在代码中做错了什么,或者它是否是一个错误...请我需要您的帮助。谢谢。jquery ajax'error'选项代表什么服务器错误代码?

var options = { 
    type: "post", 
    target: "#responsePanel", 
    beforeSend: function(){ 
     $("#uploadingImg").show(); 
     $("#polygonUploadPanel, #polygonUploadBtnHolder").hide(); 
    }, 
    complete: function(){ 
     $("#uploadingImg").hide(); 
     $("#polygonUploadPanel, #polygonUploadBtnHolder").show(); 
    }, 
    success: function(response, statusString, xhr, $form){ 
     $("#responsePanel").html(statusString); 
     //map.polygonUploaded(); 
     $("#polygonUploadForm").hide(); 
    }, 
    error: function(response, statusString, err){ 
     $("#responsePanel").html(statusString); 
     $("#polygonUploadPanel, #polygonUploadBtnHolder").hide(); 
     $("#polygonUploadBtn").hide(); 
     $("#ajaxUploadError").show(); 
     $(".errorHeading a").click(function(e){ 
      if($(".errorDetails").is(":visible")){ 
       $(".errorDetails").hide(); 
      } 
      else{ 
       $(".errorDetails").show(); 
      } 
     }); 

     if(response.status == 400) { 
      $("#polygonUploadForm").show(); 
     } 

     if(response.status == 601) { 
      sessionTimedOut(); 
     } 
    } 
}; 
$.ajax(options); 
+1

所以,你确定你实际上是得到400回应?你有没有尝试在“错误”回调函数中设置断点? – Pointy 2010-10-20 13:57:07

+0

@Pointy&@fearofawhackplanet:我会尝试再次调试它,但是你能告诉我什么是代码相当于$ .ajax中的'error'选项,或者它代表什么? – Shaoz 2010-10-20 16:43:53

+0

@Pointy:是的,我确定我在萤火虫中得到400个回应。但浏览器显示500个。 – Shaoz 2010-10-20 16:46:24

回答

1

您使用数据类型: 'JSONP'?如果是这样,并且出现错误there's a bug(?)它会进入以太网。

如果不是,jQuery的> = 1.5,尝试添加处理程序的的StatusCode地图到您的AJAX设置,看看如果你进入每个命名状态:

,success: function(a,b,c){ 
     console.log('success'); 
     console.log(a); 
    } 
    ,error: function(a,b,c) { 
     console.log('error'); 
    } 
    ,statusCode: { 
     200: function(a,b,c) { 
      console.log('200'); 
     } 
     ,400: function(a,b,c) { 
      console.log('400'); 
     } 
     ,404: function(a,b,c) { 
      console.log('404'); 
     } 
     ,500: function(a,b,c) { 
      console.log('500'); 
     } 
    } 
    ,complete: function(a,b,c) { 
     console.log('complete'); 
     console.log('status: ' + a.status); 
    }