Для начала будет хорошо вернуться с 200 OK кодом ответа (вместо 201).
Примечание: Если вы хотите просто сразу получитьответ только на ваш вопрос, вы можете увидеть последнюю часть этого ответа (использование конструкции "done / fail" вместо "success / error").
Дополнительно:
Существует множество шаблонов, которые используются Client (Frontend) <-> API <-> Server (Backend) разработчиками. Приблизительно все API построены без каких-либо 500 кодов ошибок сервера. Но существует также много различий между структурами API.
Одним из них является отправка ответа следующим образом (это единственный пример ответа):
return response()->json([
'success' => true, // true or false
'message' => "Message about success!",
], 200); // 200, 401, 403, 404, 409, etc
Другой подход состоит в том, чтобы всегда посылать 200 OK, но сообщение также может быть об ошибке:
return response()->json([
'success' => false, // true or false
'code' => 404,
'message' => "Resource not found!",
], 200);
Этот тип методов будет написан в try {} catch () и вернет только 200, но эти сообщения могут быть имитированы также как ошибка (как в примере).
Другой (подходящий для вас подход) заключается в изменении вашей функциональности Frontend AJAX следующим образом:
$.ajax({
type: 'POST',
url: processUrl,
data: {
{{--_token: "{{ csrf_token() }}",--}}
name: fname,
surname: lname
},
dataType: 'json'
}).done(function(res) {
console.log(res);
if(res.length >= 1) {
$('#display').val(res.name);
}
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log("Error: " + textStatus);
});
AJAX .done ()функция заменяет метод .success (), который устарел в jQuery 1.8. Это альтернативная конструкция для функции обратного вызова success (как и раньше: «success: function () {...}»).
Функция AJAX .fail () заменяет метод .error (), который был объявлен устаревшим вjQuery 1.8. Это альтернативная конструкция для полной функции обратного вызова (как прежде: "error: function () {...}").
Примечание: обратный вызов .error () вызывается при ошибках HTTP, но также еслиСинтаксический анализ JSON ответа не удался. Это то, что, вероятно, происходит, если код ответа - 200/201, но вы все равно получаете сообщение об ошибке.