Отобразить ответ об ошибке jQuery $ .ajax 503 - PullRequest
0 голосов
/ 24 января 2011

Я пытаюсь отобразить ответ файла, который отвечает с ошибкой 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');
    }
    });
}

По какой-то причине данные не дают мне содержания ответа.

Ответы [ 3 ]

1 голос
/ 24 января 2011
$.ajax({
   // ...
   // [other arguments]
   // ...
   error: function(xmlReq, txtStatus, errThrown){
     $('#status').text(xmlReq.responseText).addClass('errorBox');
   }
});

Я думаю, что это то, что вы собираетесь, хотя и не уверен.В любом случае, xmlReq (как я его назвал) имеет несколько свойств , связанных с ним, к которым вы можете обращаться и ссылаться.

0 голосов
/ 18 сентября 2012

Я не знаю, помогает ли это, но у меня есть веб-сервис, который я заставляю выдавать ошибку 503, когда база данных недоступна. Он правильно возвращает код ответа HTTP 503, но в моем клиентском скрипте возвращенный код ответа AJAX равен 500 (ошибка сервера). Возможно, вы захотите иметь общий обработчик кода ответа 5 **, а не конкретный 503, чтобы вы могли уловить все проблемы, связанные с сервером. Это то, что я в итоге сделал.

0 голосов
/ 24 января 2011

AFAIK, в каком-то браузере XHR отказывается передавать данные, когда статус не равен 2xx, 3xx.Если вам нужны данные ответа 503, попробуйте переписать код состояния HTTP на стороне сервера.

При complete(data, textStatus, XMLHttpRequest) обратном вызове вы можете проверить textStatus для строки error, чтобы обнаружить 503. (О, я только что понял, что вы уже это знаете)

ref: http://api.jquery.com/jQuery.ajax/

Редактировать: Используйте complete() вместо success(), чтобы перехватить все результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...