我正在编写 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);
}
});
但正如Loïc Faure-Lacroix建议的那样,我可以为 Ajax 和 HTTP 请求发送 dict,这样可以简化代码。
什么是更好的主意?抛出异常时我应该从视图中返回什么?