Как грамотно обрабатывать ответы сервера при использовании jQuery Ajax()

Рейтинг: 0Ответов: 2Опубликовано: 13.04.2015

Добрый день. В своих сайтах и пр.скриптах (парсерах например) я использую JQuery Ajax() для отправки данных форм в основном. Вот у меня возникает такой вопрос, а как грамотно обрабатывать ответы от php скриптов?

Пример, при отправки письма. Я через JQuery Ajax() отсылаю данные формы скрипту. Письмо может уйти или не уйти. В зависимости от этого я отдаю JQuery Ajax() ответ, например

<span class="success" > Письмо ушло </span>

или

<span class="error" > Произошла ошибка </span>

А дальше в функции success в jQuery Ajax() пишу всякие проверки на наличие элементов с классом success или error и показываю пользователю соответствующие сообщения. У меня есть чувство, что я делаё всё как-то замудрённо, не правильно, что есть более изящные методы, но какие - понятия не имею. Подскажите а как вы обрабатывайте такие ответы, как выстраиваете логику поведения?

Ответы

▲ 1

Так и обрабатываем. Пример из документации http://api.jquery.com/jquery.ajax/

var jqxhr = $.ajax( "example.php" )
  .done(function() {
    alert( "success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "complete" );
  });
▲ 1

Пока возвращаешь html ничего лучшего у тебя не будет, можешь конечно поиграться со статус кодами, но ничего хорошего тебя с ними не ждет.

Простейшее решение - возвращать json с полями messageClass, messageText и создавать сообщение на клиенте. Ручками или с помощью темлейтов (mustache.js).

<span class="{{messageClass}}" > {{messageText}} </span>

Хипстерское решение - использовать json + angular.js :)