我有以下表格供我的用户更改他们的电子邮件地址. form enctype="multipart/form-data" id="email_change_form" method="post" action="/my_account/"table tr td label for="id_email"E-mail address/label: /td td input name="email"
<form enctype="multipart/form-data" id="email_change_form" method="post" action="/my_account/"> <table> <tr> <td> <label for="id_email">E-mail address</label>: </td> <td> <input name="email" value="a@a.com" maxlength="75" type="text" id="id_email" size="30" /> </td> <td class="error_email"> </td> </tr> </table> <input type="hidden" name="form_id" value="email_change_form" /> </form>
单击保存按钮(其代码未显示)后,表单将使用以下jQuery代码ajaxly发布到服务器:
$(".save_button").click(function() { var $form = $("#email_change_form") url = $form.attr("action"); $.post(url, $form.serialize(), function(data) { //upon success, the server returns the new email (data.email) in a json dictionary. }, "json" ); } })
一旦服务器收到POST,它就需要验证新电子邮件在数据库中是否已经存在(即电子邮件需要是唯一的).假设服务器检测到重复的电子邮件,我不知道如何将错误传回客户端.我很想在json字典中添加一个条目“duplicate_email:true”并将其返回给客户端.我不知何故觉得这不是正确的做法.
请为此方案建议正确的方法.服务器应该如何将错误传递回客户端?如何在客户端捕获错误?谢谢.
最好的做法可能是返回一个这样的错误对象:{error:true, errorCode:123, errorMessage:"Duplicate Email", errorDescription:"The email you entered (john@johndoe.com) already exists" }
然后,您可以跟踪特定于您的应用程序的错误代码/消息列表.