使用从 jQuery .ajax 调用到 REST API 的自定义错误消息(简单文本)处理 400 错误(表单验证错误)的最佳方法是什么。我正在尝试使用响应数据返回验证消息。但是,如果我返回 400 的状态代码,则 .ajax 使用了错误函数。只有成功似乎才能轻松提取“响应”数据,其中包括我的“消息”。
REST API PHP CodeIgniter 的片段:
$id = $this->contact_model->insert($put);
if (!empty($id))
{
$this->response(array('result' => true, 'id' => $id), 200);
}
else
{
$this->response(array('result' => false,
'message' => strip_tags(validation_errors())), 400);
}
jQuery .ajax 代码片段:
$.ajax({
url: '<?php echo site_url('rest_api/contacts')."?format=json"; ?>',
type: "put",
data: $('#subpanel-contacts-add-form').serialize(),
success: function(response) {
if (response.result == true) {
// Add Relationship collection_contact_put
$.ajax({
url: '<?php echo site_url('rest_api/collections'); ?>/' + collection_id + '/contacts/' + response.id + '?format=json',
type: "put",
data: {},
success: function(relresponse) {
}
});
} else {
$("#subpanel-contacts-form-result").html('<div class="alert alert-error">Error: The Contact could not be saved! ' + response.message + '</div>');
}
},
error: function() {
$("#subpanel-contacts-form-result").html('<div class="alert alert-error">Error: There was an error while submitting!</div>');
}
});
我正在尝试使用“响应”对象;参数消息和结果。我不确定是否有更好的方法来处理错误代码的响应。我应该使用 .done .always 和/或 .fail。我应该基于返回的状态码吗?
编辑:注意到我混合了 PUT/POST。