Я пишу проект Python Pyramid и использую jQuery и jquery.form.js. Я хочу, чтобы мои представления обрабатывали сообщения как HTTP, так и AJAX (я не уверен, что это лучшая идея, но, вероятно, это материал для другого вопроса здесь).
Теперь я использую self.request.session.flash()
для уведомления об ошибке, когда HTTP POST был отправлен и произошла ошибка. Но когда Ajax публикуется, я возвращаю ответ HTTPOk() или HTTPServerError(), поэтому я могу легко показать пользователю сообщение об ошибке:
$('.ajax_form').ajaxForm({
error: function(xhr, textStatus, err){
$('.ajax_messages>.alert').hide().siblings('.alert-error').show().children('p').text(xhr.responseText);
},
success: function(responseText, statusText, xhr){
$('.ajax_messages>.alert').hide().siblings('.alert-success').show().children('p').text(xhr.responseText);
}
});
Но, как предложил Лоик Фор-Лакруа, я могу отправлять dict как для Ajax, так и для HTTP-запросов и таким образом упростить код.
Что лучше идея? Что я должен вернуть из представления, когда было выбрано исключение?