私はPythonPyramidプロジェクトを作成しており、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ïcFaure-Lacroixが提案したように、AjaxリクエストとHTTPリクエストの両方にdictを送信すると、コードが簡素化されます。
より良いアイデアは何ですか?例外がスローされたときにビューから何を返す必要がありますか?