Обработка ошибок не работает в Ajax и Laravel - PullRequest
0 голосов
/ 29 января 2019

Работа над приложением 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",
        });
    }
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...