2012-07-11 91 views
3

在这种情况下,我的JSON端点将返回正确的JSON响应:{status: "success"}。但是,如果我的webserver 500错误500响应正文是HTML,如果jQuery试图用$.parseJSON解析它,会导致SyntaxError。如何处理不返回JSON的JSON请求?

This question建议只删除请求中的dataType参数。我宁愿不这样做,有没有办法尝试/捕获由非JSON响应引发的SyntaxError?

+0

您可以放入您的$ .ajax调用代码吗? – bokonic 2012-07-11 23:00:10

回答

1

From jQuery API

Important: As of jQuery 1.4, if the JSON file contains a syntax error, 
the request will usually fail silently. 

您可以处理它的错误回调。

$.ajax({ 
     url: "MYURL", 
     dataType: 'json', 
     success: function(data) { 

     }, 
     error: function(e) { 
      if(e.status == 500) 
      alert("500 Internal Server Error"); 
     } 
});