Desarrollé un sistema de carrito simple en laravel para mi cliente local, no tiene ningún problema en mi servidor local, pero cuando lo publico en mi servidor en vivo, que es un alojamiento gratuito infinito, tiene múltiples problemas. Cuando trato de agregar al carrito el producto en la página de inicio, muestra el error 404, estoy usando la solicitud ajax.
CÓDIGO JS:
jQuery.ajax({ url: "/add_to_cart", method: "post", data: jQuery('#formAddToCart').serialize(), success: function(result){}la URL de mi página de inicio es "new_shop/" y cuando elimino el "/" de la URL de mi código js, funciona perfectamente, pero luego muestra un error en la página de detalles de mi producto donde estoy usando la misma función y la URL de la página de detalles del producto es "nombre-producto" así sin "/"; la página de detalles del producto agregar al carrito tampoco funciona con "url: "/add_to_cart"," esta url. No sé cuál es la confusión, ya que funciona perfectamente en mi servidor local. Creo que puede ser cuestión de alojamiento gratuito. Cualquier ayuda será apreciada.
CÓDIGO RUTA WEB.PHP:
Route::post('add_to_cart',[FrontController::class,'add_to_cart']);Lo estás haciendo de manera incorrecta desde el código js.
Deberías usar un nombre para tus rutas como esta
Route::post('/add_to_cart',[FrontController::class,'add_to_cart'])->name('cart.add');Ahora llámalo desde el código js así
jQuery.ajax({ url: "{{route('cart.add')}}", method: "post", data: jQuery('#formAddToCart').serialize(), success: function(result){} })Como no estoy seguro de que tengas un grupo para tu ruta o no, puedes probar esto también
jQuery.ajax({ url: "{{URL::to('/add_to_cart')}}", method: "post", data: jQuery('#formAddToCart').serialize(), success: function(result){} })Y asegúrese de pasar el token csrf en los datos de su formulario.
De esta manera, no necesita preocuparse por su nombre de método ni por su URL. Solo necesita proporcionar un nombre a sus rutas.