Функция, которую он выполняет, — просто обновление заказ, ошибка выдается только тогда, когда пользователь системы пытается отредактировать заказ, созданный другим пользователем
например, если Луис пытается отредактировать заказ, который он сделал сам, система сохраняет изменения
но если Луис попытается отредактировать заказ, сделанный Люси, AJAX ответит ошибкой 403 Forbbiden
Повторяю, этот модуль работает правильно в моей локальной среде, то есть он позволяет любому пользователю редактировать любой заказ, но в производстве он нет
Маршрут в web.php — POST, поддержка AJAX-запроса
Моя ПРОДУКЦИОННАЯ среда размещена на экземпляре AWS EC2
В контроллере нет ограничений по идентификаторам пользователей, только по ролям но это не при чем, я использую роль суперадминистратора, у меня есть все разрешения
AJAX
Код: Выделить всё
$( '.btnSaveOrder' ).click(function () {
$( '#overlay' ).show();
$( '.btn' ).prop('disabled', true);
if(orderItems.length == 0){
erroresValidacion("erroresValidacionPedido", "Debes agregar productos a la orden");
$( '#overlay' ).hide();
$( '.btn' ).prop('disabled', false);
return;
} else {
$( '#orderItemList' ).val(JSON.stringify(orderItems));
$( '#deletedOrderItemList' ).val(JSON.stringify(removedOrderItems));
}
$.ajax({
url : "{{ route('pedidos.editar') }}",
method : "POST",
data : {data: $( '#formSaveOrder' ).serialize() , _token: '{{ csrf_token() }}'}
}).done(function( data ) {
if(data.resultado === 'OK') {
//Codigo para reedirigir a nuevo pedido
confirmarYRedirigir('Orden Guardada','La operación se ha realizado con exito.','listado');
} else {
var errorMsg = "Error al editar el pedido.[list]";
$.each(data.mensajes, function(i,val) { errorMsg += ("[*]" + val + ""); } );
errorMsg += "[/list]";
erroresValidacion("erroresValidacionPedido", errorMsg);
}
}).fail(function (jqXHR, textStatus) { //
Подробнее здесь: [url]https://stackoverflow.com/questions/78668545/laravel-jquery-ajax-call-results-in-error-status-403-sometimes[/url]
Мобильная версия