laravel

Solución a Error 419 en Laravel – Page Expired

Resumen: mostrar cómo solucionar el error 419 Page Expired en Laravel, mismo que se ocasiona al enviar un formulario o al hacer una petición AJAX.

Explicación del error

Este error de programación en Laravel nos puede ocurrir al empezar a usar este framework. Se trata de que enviamos un formulario pero en lugar de que los datos se guarden, aparece un error 419 y dice “Page expired”.

El problema es que no estamos enviando el token CSRF con el formulario. Es decir, tenemos algo así:

<form action="{{route("guardar_limite_compras_clientes")}}" class="form-inline"
      method="post">
    <input type="hidden" name="id_producto" value="{{$producto->id}}">
    <input type="hidden" name="id_cliente" value="{{$clienteSeleccionado->id}}">
    <div class="form-group mr-2">
        <label class="mr-2">Cantidad:&nbsp;</label>
        <input min="0" required value="{{$producto->cantidadProductos}}" type="number"
               name="cantidad_productos"
               class="form-control"
               step="any">
    </div>
    <div class="form-group">
        <label class="mr-2">Meses:&nbsp;</label>
        <input min="0" required value="{{$producto->numeroMeses}}" type="number"
               name="numero_meses"
               class="form-control"
               step="any">
    </div>
    <button class="btn btn-info ml-2">
        <i class="fa fa-check-circle"></i>
    </button>
</form>

Podemos tener varios campos, pero dentro del formulario debe estar un input hidden con el token CSRF para prevenir ataques.

Solución

Simplemente agrega el token CSRF a tu formulario. Con blade esto es fácil, solo debes colocar @csrf dentro del form. Así (línea 4):

<form action="{{route("guardar_limite_compras_clientes")}}" class="form-inline"
      method="post">
      ...
  @csrf
    ...
</form>

Eso va a generar (al renderizarse) algo así:

<input type="hidden" name="_token" value="ggmY2I1Gjt0wDFRU1ds0cP9H4g5dJaFg7X6wXgXU">

De este modo estarás enviando el token CSRF en la petición, y de este modo Laravel dejará de mostrar ese error.

Si en cambio este error te aparece al hacer peticiones AJAX, mira cómo agregarlo a las peticiones asíncronas.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Recomiendo revisar los archivos controladores y de rutas. Cuando quedan caracteres y espacios antes de <?php, puede arrojar este error. (Error 419 Page Expired)

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.