Laravel AJAX - Как показать ошибку в console.log - PullRequest
0 голосов
/ 10 июня 2019

Я хочу показать ошибку или узнать, почему этот код запускается с ошибкой: function ()

Результат всегда запускается с ошибкой: функция. Я хочу запустить успех: функция (данные) и перезагрузить эту страницу.

Но консоль не показывает ничего об ошибке.

https://imgur.com/ZubjYTc

https://imgur.com/mSfHnSR

====== Ajax ======

function ex_go(r_idx)
{
    if(confirm("Are you sure?") == true)
    {
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        $.ajax({
            type:'POST',
            dataType: 'JSON',
            url: "{{ route('change-centerYn') }}",
            data:{r_idx:r_idx},
            success:function(data){
                alert(data.success);
                location.reload();
            },
            error:function(xhr, data){
                console.log(xhr);
            },

    }else{
        return false;
    }
}

====== Контроллер ======

public function ex_ok(Request $request)
    {
        if(request()->ajax())
        {
            $r_idx = 'Hello';
            var_dump('<pre>', $r_idx);

            return response()->json(['msg'=>'Updated Successfully', 'success'=>true]);
        }
}

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

Это вдруг работает!Невероятно!Большое спасибо!Вы спасли мое утро!

Используйте try catch

========= AJAX ========== *

function ex_go(r_idx)
{
    if(confirm("해당 결제건을 지원센터로 보내시겠습니까?") == true)
    {
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        console.log(r_idx);

        $.ajax({
            type:'POST',
            dataType: 'JSON',
            url: "{{ route('change-centerYn') }}",
            data:{r_idx:r_idx},
            success:function(data){
                alert(data.success);
                location.reload();
            },
            error:function(xhr, data){
                console.log(xhr);
            }
        });
    }else{
        return false;
    }
}

========= Laravel Controller =======

    public function ex_ok(Request $request)
    {
        try
        {
            if(request()->ajax())
            {
                $r_idx = $request->r_idx;

                $lecture = DB::table('class_order')
                ->select('*')
                ->where('r_idx', '=', $r_idx)
                ->first();

                if ($lecture->r_oid != '') {
                    $insert_data = [
                        'r_oid' => $lecture->r_oid,
                        'r_user_id' => $lecture->r_user_id,
                        'r_name' => $lecture->r_name,
                        'r_tel' => $lecture->r_tel,
                        'r_hp' => $lecture->r_hp,
                        'r_email' => $lecture->r_email,
                        'r_zip' => $lecture->r_zip,
                        'r_addr1' => $lecture->r_addr1,
                        'r_addr2' => $lecture->r_addr2,
                        'r_class' => $lecture->r_class,
                        'r_enddate' => $lecture->r_enddate,
                        'app_endday' => $lecture->app_endday,
                        'whole_study' => $lecture->whole_study,
                    ];
                    DB::table('ex_class_order')->insert($insert_data);
                    ClassOrder::where('r_idx', '=', $r_idx)->update(['centerYn' => 'y']);

                    $info_txt = "처리되었습니다.";
                }
                else
                {
                    $info_txt = "처리실패";
                }
                return response()->json(['msg'=>'Updated Successfully', 'success'=>true]);
            }
        }
        catch(\Exception $e)
        {
            \Log::error($e); // create a log for error occurrence at storage/log/laravel.log file
            return response()->json($e->getData(), $e->getStatusCode());
        }
}
0 голосов
/ 10 июня 2019

Так как вы не используете Try & Catch или при обработке ошибок ваш контроллер вернет код состояния HTTP-заголовка 200, что означает, что ajax всегда будет думать, что процесс выполняется правильно, и замечая, что что-то пошло не так, попробуйте использовать обработку ошибок в вашемФункция контроллера и выдает исключение, если что-то пошло не так во время вашего процесса кода.Вы можете прочитать по этой ссылке

, ниже вы можете увидеть пример изменения кода к существующему коду:

public function ex_ok(Request $request)
{
    try
    {
        if(request()->ajax())
        {
            $r_idx = 'Hello';
            var_dump('<pre>', $r_idx);
            return response()->json(['msg'=>'Updated Successfully', 'success'=>true]);
        }
    }
    catch(\Exception $e)
    {
        \Log::error($e); // create a log for error occurrence at storage/log/laravel.log file
        return response()->json($e->getData(), $e->getStatusCode());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...