Я использую jQuery для быстрого создания одностраничных приложений с Laravel
шаблонами.Например, обновление только раздела #content
веб-страницы при нажатии кнопки (ссылки) на боковой панели панели администратора.
Обычно я добавляю обратные вызовы success
и error
в свой запрос как таковые.
$.ajax({
url: url,
type: "POST",
data: data,
success:function(data){
},
error:function(xhr, status, error) {
//Error msg for Developers
$('body').html('');
$('body').prepend(xhr.responseText);
$('body').append('XHR :'+xhr);
$('body').append('STATUS :'+status);
$('body').append('ERROR :'+error);
// for users
// $('.infoMsg').html("OOPS SOMETHING BAD HAPPENED!");
// $('#infoModal').modal();
}
});
В более ранних версиях Laravel
например, 5.4
JS внутри функции ошибок обычно отображал ошибки из бэкэнда так же, как обычные ответы HTTP (обычная веб-страница).В то время, я полагаю, разработчики должны были преднамеренно ответить на вопрос, какой ответ требуется отправить обратно, и по умолчанию был HTTP.Так что, если бы была ошибка на бэкэнде, я бы увидел что-то вроде этого (хотя это 5.7
)
![enter image description here](https://i.stack.imgur.com/Z6PgM.png)
Так в чем здесь проблема!Проблема здесь с 5.6 и выше. Я думаю, что Laravel
может определить тип запроса и отправляет ответы в соответствующем формате, в зависимости от типа запроса.В этом случае он возвращает ответы JSON для моих запросов AJAX.Так что теперь, когда есть и ошибка в бэкэнде, я бы увидел что-то вроде этого
Наличие ошибок, отображаемых таким грязным способом, усложняет для меняотладить или даже понять ошибку!Я знаю, что возможно, чтобы JSON выглядел лучше, но я хочу знать, возможно ли (и на самом деле хорошее решение) для меня просто заставить Laravel
возвращать HTTP-ответ независимо от того, как это было в предыдущих версиях?
При работе с GET
запросами, если при получении маршрута и ошибки из бэкэнда при посещении маршрута, например, list/products
, простой способ отладки - просто перейти по URL-адресу из адресной строки и получить ошибку вФормат HTTP напрямую, однако при работе с запросом POST
это не так.На самом деле это не «программная ошибка» или что-то в этом роде, а поиск удобного способа отладки проблем AJAX с помощью Laravel
.Я хотел бы получить мое "хорошее старое поведение laravel" Спасибо!