Jquery 与AJAX请求对应的错误应该如何传递给客户端并在客户端处理?
我有以下表格供我的用户更改他们的电子邮件地址Jquery 与AJAX请求对应的错误应该如何传递给客户端并在客户端处理?,jquery,ajax,django,Jquery,Ajax,Django,我有以下表格供我的用户更改他们的电子邮件地址 <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> <t
<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>
服务器收到帖子后,需要验证数据库中是否已经存在新电子邮件(即,电子邮件需要唯一)。假设服务器检测到重复的电子邮件,我不确定如何将错误反馈给客户端。我很想在json字典中添加一个条目“duplicate_email:true”,并将其返回到客户端。一、 不知何故,我觉得这不是正确的方法
请针对这种情况建议正确的方法。服务器应该如何将错误传递回客户端?如何在客户端捕获错误?谢谢。最佳做法可能是返回如下错误对象:
{error:true,
errorCode:123,
errorMessage:"Duplicate Email",
errorDescription:"The email you entered (john@johndoe.com) already exists"
}
$.ajax({
statusCode: {
409: function() {
alert('duplicate');
}
}
});
然后,您可以跟踪特定于应用程序的错误代码/消息列表。如果您希望以正确的方式执行此操作™, 尽你所能。在这种情况下,合适的解释可能是“409冲突”,Wikipedia将其定义为“表示由于请求中的冲突(例如编辑冲突)而无法处理请求”。(另见。) 因此,让服务器输出一个“409冲突”标题,并在客户端中检查状态。$。post()不会这样做,因为您只能注册一个成功处理程序,所以您需要像这样使用$.ajax():
{error:true,
errorCode:123,
errorMessage:"Duplicate Email",
errorDescription:"The email you entered (john@johndoe.com) already exists"
}
$.ajax({
statusCode: {
409: function() {
alert('duplicate');
}
}
});
`我很想添加一个条目“replicate_email:true”`这正是您需要做的:)谢谢您的解决方案。然而,对于我正在工作的原型来说,RESTful有点过头了。有了这一点,这种方法肯定是我以后会考虑的。干杯,当然。与其他技术相比,这无疑是更多的前期设计和API争论,对于快速原型来说并不总是有意义。感谢您的解决方案。由于我正在开发一个原型,现在,我决定使用您的简化版本——使用errorMessasge字段创建一个error对象。干杯