У меня есть следующая форма для того, чтобы мои пользователи могли изменить свои адреса электронной почты.
<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:
$(".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, он должен убедиться, что новое электронное письмо еще не существует в базе данных (т. е. электронное письмо должно быть уникальным).Скажем, сервер обнаружил дубликат электронной почты, я не уверен, как сообщить об ошибке клиентской стороне.У меня возник соблазн добавить запись «duplicate_email: true» в словарь json и вернуть ее на стороне клиента.Я почему-то чувствую, что это неправильный подход.
Пожалуйста, посоветуйте правильный подход (ы) для этого сценария.Как сервер должен передать ошибку обратно клиентской стороне?И как должна быть зафиксирована ошибка на стороне клиента?Спасибо.