Ajax вызывает событие успеха, но возвращает ошибку 201

-2

Я использую Ajax в проекте Laravel, и у меня есть кнопка, которая запускает функцию с двумя ошибками состояния и успехом. но на обоих из них возвращается сообщение об успешном завершении.

контроллер:

if ($user->balance < $total_paid) {
return response()->json(['responseText' => 'error'], 201);
} else {
return response()->json(['responseText' => 'success!'], 200);
}

Функция Ajax в интерфейсе:

<script type="text/javascript">
            function pay_with_ewallet()    { 
            $.ajax({
              url: "{!!URL::route('pay_with_ewallet')!!}",
              type: "post",
              data: {
                'OrderShipAddress':$('input[name=OrderShipAddress]').val(), 
                '_token': $('input[name=_token]').val(),
                'OrderEmail':$('input[name=OrderEmail]').val(),
                'city_id':$('select[name=city_id] :selected').val(),
                'OrderPhone':$('input[name=OrderPhone]').val(),
                'shipping_cost': @if (isset( $shipping_total )) {{ $shipping_total  }} @endif ,
                'order_total':@if (isset( $final_total )) {{ $final_total  }} @endif,
                },
                success: function(data) {
                    if (response == 'success') 
                        $("#myElem").show();
                        setTimeout(function() { $("#myElem").hide(); }, 10000);
                    else 
                        $("#myerror").show();
                        setTimeout(function() { $("#myerror").hide(); }, 10000);
                }​
            });
        }
    </script>

и кнопка:

<button href="" class="btn btn-danger pull-right" id="pay_with_ewallet-btn {{ $user->id }}" data-id="{{ $user->id }}" onclick="pay_with_ewallet('pay_with_ewallet{{ $user->id }}')">{{ trans('interface.pay_with_e_wallet') }}</button>

Я пробовал все, что мог, и много исследований в Интернете, но был бесполезен.

  • 4
    201 не является ошибкой.
  • 1
    Как уже было сказано, 201 не является ошибкой, и jQuery все равно примет ее как success . В контексте вашего кода 403 ЗАПРЕЩЕНО, или даже просто 400 ПЛОХОГО ЗАПРОСА казались бы более подходящими - при условии, что вы дадите более наглядный ответ, чем 'error'

1 ответ

5
Лучший ответ

201 - это существующий ответ HTTP-кода и средства, created и выполненный запрос. Так что для Ajax это успех. Постарайтесь использовать разные цифры, из стандартных (100-505).

https://httpstatuses.com/201

Ещё вопросы

Сообщество Overcoder
Наверх
Меню