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 が混在していることに気付きました。