Работа над приложением Laravel, у которого есть поле ввода формы, посредством которого я проверяю на бэкэнде.Я помещаю данные в бэкэнд через код AJAX, который работает нормально.Я реализовал логику, согласно которой ошибки из бэкэнда показываются на внешнем интерфейсе через объект ошибки AJAX.
Внутри функции PHP также выполняется API-интерфейс для извлечения некоторых данных.Иногда API недоступен, я пытаюсь обработать ошибки (когда API недоступен) и отображать их пользователю через AJAX в форме окна предупреждения (используя «сладкое оповещение»), но не выдает ошибку, когдаAPI недоступен.
Функция контроллера
public function validatePlans (Request $request){
$validation = $this->validate($request, [
'FirstName' => 'required|string|max:13|regex:/^[a-zA-Z ` ]+$/',
'MiddleName' => 'required|string|max:13|regex:/^[a-zA-Z ` ]+$/',
'LastName' => 'required|string|max:13|regex:/^[a-zA-Z ` ]+$/'
],
[
'FirstName.regex' => 'Please insert a valid First Name',
'MiddleName.regex' => 'Please insert a valid Middle Name',
'LastName.regex' => 'Please insert a valid Sur Name'
]
);
/*Hits the API to get some data*/
$trv= GeneralHelper::global_Curl_Meta($data, 'api/v1/travel/get-plans?=');
//If API not available or status is failure
$travelplan_data = ($trv == null || $trv->status == "failure") ? [] : $trv->data;
//dd($travelplan_data);
if(!empty($travelplan_data)){
$plans = $travelplan_data;
//dd($plans);
return 'true';
}
}
else{
return 'fail';
}
}
AJAX-код, получающий ответ от API
$.ajax({
type: "POST",
url: "getplans",
data:JSON.stringify(type),
contentType: 'application/json',
dataType: "json",
success: function(response){
//API not reachable
if(response =='fail'){
//Display error using sweet alert js library
swal({
title: "Ooops!",
text: "We are undergoing a bit of scheduled maintenance. Sorry for the inconvenience. We'll be back soon.",
icon: "warning",
button: "Back",
});
//Unblock the spinner
$.unblockUI();
}
//On success
else{
//Unblock the spinner
$.unblockUI();
//Redirect
window.location.href="getp" ;
}
},
//Alert errors from backend
error: function(data) {
//Unblock the spinner
$.unblockUI();
var errors = '';
for(datos in data.responseJSON){
errors += data.responseJSON[datos] + '\n';
}
//Display errors using sweet alert js library
swal({
title: "Ooops!",
text: errors,
icon: "warning",
button: "Rectify",
});
}
});