Aprendo MVC y realizo alguna interacción AJAX. Entonces tengo un archivo de rutas con
'cart/addProductAjax' => 'cart/addProductAjax',CartController con acciónAddProductAjax:
<?php class CartController { public function actionIndex() { } public function actionAdd($productId) { Cart::addProduct($productId); $referer = '/'; if (isset($_SERVER['HTTP_REFERER'])) { $referer = $_SERVER['HTTP_REFERER']; } header("Location: $referer"); } public function actionAddProductAjax() { $productId = $_POST['productId']; print_r($_POST); exit; Cart::addProduct($productId); $itemsAmount = Cart::countItems(); exit(json_encode($itemsAmount)); } }Y una pieza de código JS que envía una solicitud y recibe una respuesta del servidor:
document.body.addEventListener('click', event => { if(event.target.classList.contains('add-to-cart')) { event.preventDefault(); let productId = event.target.dataset.id; let response = fetch("/cart/addProductAjax/", { method: 'POST', headers: { 'Content-Type': 'application/json;charset=utf-8' }, body: JSON.stringify(productId), }) .then(response => response.json()) .then(response => console.log(response)); } });Y nada funciona. Creo que hay un error en algún lugar del método PHP. ¿Qué debo hacer para que funcione?