2013-02-02 308 views
0

我知道在jQuery ajax有工具來檢測錯誤,但我想要的是如何描述是什麼問題? 404,沒有互聯網連接,內部服務器錯誤或其他?jQuery ajax錯誤的描述

這是我簡單的程序

<script type="text/javascript" charset="utf-8" src="http://jquery.local/jquery-1.7.2.min.js"></script> 

<script> 
    function Create_new_event() 
    { 
     url = "missing.php"; 

     $.post(url, { 
     }, function(hasil) { 
      alert (hasil); 
     }); 
    } 

    $(document).ajaxError(function(event, request, settings) { 
     // I believe in this area I should put my code to detect problem 
    }); 

</script> 

<button onClick="Create_new_event();">Send</button> 
+1

看看這裏:http://stackoverflow.com/questions/1637019/how-to-get-the-jquery-ajax-error-response-text – Iansen

+0

T an hans L ansen – Reinstar

回答

1

是的,你可以實現與thrownError PARAM,這樣做:http://jsfiddle.net/XJ7L2/

function Create_new_event() { 
    url = "missing.php"; 

    $.post(url, {}, function (hasil) { 
     alert(hasil); 
    }); 
} 
$(function() { 
    $('button').click(function(){ 
    Create_new_event(); 
    }); 
    $(document).ajaxError(function (event, request, settings, thrownError) { 
    console.log(request.status + ' : ' + thrownError); 
    }); 
}); 

當HTTP錯誤發生時,thrownError接收HTTP的文本部分狀態,如"Not Found""Internal Server Error."

+0

T hanks J ai – Reinstar

1

如果你看什麼request參數包含(console.log(request);),您會看到響應代碼位於request.status,文字說明位於request.statusText

因此,像這樣:

$(document).ajaxError(function(event, request, settings) { 
    console.log('Server returned '+request.status+': '+request.statusText); 
}); 

演示:http://jsfiddle.net/FSfEh/

+0

謝謝J uhana – Reinstar

2

下面是一個例子:

$(document).ajaxError(function(e, x, settings, exception) { 
      var message; 
      var statusErrorMap = { 
       '400' : "Server understood the request but request content was invalid.", 
       '401' : "Unauthorised access.", 
       '403' : "Forbidden resouce can't be accessed", 
       '500' : "Internal Server Error.", 
       '503' : "Service Unavailable" 
      }; 
      if (x.status) { 
       message =statusErrorMap[x.status]; 
           if(!message){ 
             message="Unknow Error \n."; 
            } 
      }else if(exception=='parsererror'){ 
       message="Error.\nParsing JSON Request failed."; 
      }else if(exception=='timeout'){ 
       message="Request Time out."; 
      }else if(exception=='abort'){ 
       message="Request was aborted by the server"; 
      }else { 
       message="Unknow Error \n."; 
      } 

      alert(message); 
}); 
+0

謝謝sdespont – Reinstar