显示jQuery $ .ajax 503错误响应

我正在尝试显示响应503错误的文件的响应。

function netbootupdate() { $("#netbootstatus").html('Updating..'); $.ajax({ type: 'GET', url: 'clientarea.php', data: 'action=productdetails&id=' + $('#serverid').val() + '&modop=custom&a=netbootset&netbootid=' + $('#netbootid').val() + '&root=' + $('#root').val(), timeout: 5000, success: function(data) { $("#netbootstatus").html(data); $("#status").html(''); }, error: function(data) { $("#status").html(data); $('#status').addClass('errorbox'); } }); } 

由于某种原因,数据不会给我回复的内容。

 $.ajax({ // ... // [other arguments] // ... error: function(xmlReq, txtStatus, errThrown){ $('#status').text(xmlReq.responseText).addClass('errorBox'); } }); 

我认为这就是你想要的,但不确定。 无论哪种方式, xmlReq (我已经命名)都有几个与之关联的属性 ,您可以访问和引用它们。

AFAIK,在某些浏览器中,当状态为2xx,3xx时,XHR拒绝传递数据。 如果确实需要503响应的数据,请尝试在服务器端重写HTTP状态代码。

complete(data, textStatus, XMLHttpRequest)回调中,你可以检查textStatus是否有字符串error来检测503.(哦,我刚才意识到你已经知道了)

参考: http : //api.jquery.com/jQuery.ajax/

编辑:使用complete()而不是success()来捕获所有结果。

我不知道这是否有帮助,但我有一个Web服务,我强制在数据库不可用时抛出503错误。 它正确返回HTTP 503响应代码,但在我的客户端脚本中,返回的AJAX响应代码为500(服务器错误)。 您可能希望拥有一个通用的5 **响应代码处理程序,而不是特定的503,因此您可以捕获所有与服务器相关的问题。 这就是我最终做的事情。