2013-11-15 3 views
0

Я делаю ajax-вызов, что ответ будет 400-страничным кодом ошибки. Я использую php как серверный язык. Мой PHP:Сообщение XHR Object не определено, но показывает правильный статус

header('Content-Type: text/html',true,400); 
echo $this->upload->display_errors('<p>', '</p>'); 

мой JavaScript:

$('#upload-form').ajaxForm({ 
      success: function() { 
       $(".loader").hide(); 
       return false; 
      }, 
      complete: function(data) { 
       var imageUrls = new Array(); 
       var i = 0; 
       jQuery.each(data, function(index, item) { 
        imageUrls[i] = item.name.toString(); 
        i++; 
       }); 
       alert(imageUrls); 
       $(".loader").hide(); 
       return false; 
      }, 
      error : function(xhr, status, errorMessage) { 
       //alert(xhr.status); 
       alert(status); 
       alert(errorMessage); 
       //$("#status").html(xhr.message); 
       $(".loader").hide(); 
      } 
     }); 

, когда я хочу, чтобы показать сообщение об ошибке, он возвращает неопределенное. Я использовал xhr и xhr.message, но не повезло. Как я могу вернуть код ошибки с сообщением на вызов ajax и выполнить ответ?

+0

... вы используете 'jQuery.each (данные,' но данные не определен –

+1

Попробуйте войти два других параметров, передаваемых на обратный вызов ошибки 'ошибка:.. Функция (XHR, статус, ErrorMessage) ' –

+0

@KevinB, полная часть в порядке, но моя проблема связана с частью ошибки. – Ramin

ответ

1

Попробуйте?

 error: function (xhr, textStatus, errorThrown) { 
         switch (xhr.status) { 
          case 400: 
          case 401: 
          case 402: 
          case 403: 
          case 404: 
          case 500: 
           message = xhr.responseText; 
           break; 
          default : 
           message = 'Error unKnown'; 
         } 
     } 
+0

спасибо, xhr .responseText работал. – Ramin

+0

@ 1linecode вы можете пометить его как решение? – ilyass

+0

Да, но сайт говорит, подождите 4 минуты. – Ramin

Смежные вопросы