diff --git a/test.html b/test.html
index b16ade6..acf4d8c 100644
--- a/test.html
+++ b/test.html
@@ -82,14 +82,14 @@
const checkedBoxes = document.querySelectorAll('.prod-check:checked');
if(checkedBoxes.length === 0) return alert("Coche des produits !");
-
+
const btn = document.getElementById('save-btn');
btn.disabled = true;
btn.textContent = "Traitement en cours...";
let successCount = 0;
let errorCount = 0;
-
+
for (const checkbox of checkedBoxes) {
let p = fullProductList[checkbox.dataset.index];
@@ -100,20 +100,27 @@
formData.set('category', newCat);
try {
+ // On ajoute l'en-tête X-Requested-With qui est souvent le verrou du 403
let res = await fetch('api/index.php?action=product_save', {
method: 'POST',
- body: formData
+ body: formData,
+ headers: {
+ 'X-Requested-With': 'XMLHttpRequest'
+ }
});
+ // On récupère le texte pour voir ce que le serveur dit vraiment en cas d'erreur
+ let resultText = await res.text();
+
if (res.ok) {
successCount++;
} else {
- console.error("Erreur serveur sur " + p.name);
+ console.error("Échec sur " + p.name + " (Code " + res.status + "):", resultText);
errorCount++;
}
- await new Promise(r => setTimeout(r, 250));
+ await new Promise(r => setTimeout(r, 300));
} catch (e) {
- console.error("Erreur réseau sur " + p.name, e);
+ console.error("Erreur critique sur " + p.name, e);
errorCount++;
}
}
@@ -121,8 +128,7 @@
await loadData();
btn.disabled = false;
btn.textContent = "APPLIQUER AUX COCHÉS";
-
- alert(`Traitement terminé :\n- Succès : ${successCount}\n- Erreurs : ${errorCount}`);
+ alert(`Traitement terminé :\n- Succès : ${successCount}\n- Erreurs : ${errorCount}\n\n(Vérifie la console F12 pour le détail des erreurs)`);
}