2013-06-02 3 views
4

У меня есть следующий код, отправляющий данные моей формы в upload.php через ajax. Внутри php-файла сервер проверяет размер/формат загруженного файла и т. Д. Как я могу сказать ajax, если это не удалось и остановить сообщение об успешном завершении?Сообщить об ошибке обратно в ajax

$.ajax({ 
    type: 'POST', 
    url: 'upload.php', 
    data: dataString, 
    success: function() { 
     $('#getintouch .alert-error').slideUp(); 
     $('#getintouch .alert-success').slideDown(); 
     $('#submit').data('loading-text', 'Sent'); 
     $('#submit').button('loading'); 
    } 
}); 

ответ

2

Это можно сделать двумя способами:

  1. Есть сервер эхо обратно сообщение и иметь чек JavaScript для него.

    success: function(data) { 
        if (!data.success) //if JSON 
        { 
         // do error message 
         return; 
        } 
    
  2. Изменить код ответа HTTP

    http_response_code(500); 
    

    EDIT - использовать параметр ошибки на переднем конце, чтобы справиться с этим:

    error: function(){...}, 
    success: function(){...}, 
    
+1

Просто добавить: в случае 5xx HTTP-код, вы должны использовать «ошибку» обратный вызов AJAX: http://api.jquery.com/Ajax_Events/ –

+0

Я использовал метод 2, но событие успеха - это стиль l запускается, несмотря на то, что код ответа равен 500 и установка сценария для die(); – JazzyP

+1

Aha! http_response_code требует php 5.4, я использую 5.3. Я использовал следующий код вместо заголовка (':', true, 500); – JazzyP

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