Bonjour,
Pour les connaisseurs, je sens que la question va être simple, mais pour moi je sèche et je ne vois pas la solution.
J’ai bien ce script dans mon javascript Projote.js:
// Ajout de l'événement de clic sur le bouton de validation
$('#bt_Validate').on('click', function () {
// Exécution de la requête AJAX
$.ajax({
type: "POST", // Méthode de transmission des données au fichier php
url: "/plugins/Projote/core/ajax/Projote.ajax.php", // URL du script PHP AJAX
data: {
action: "action", // Action à exécuter dans le script PHP
// Autres données à envoyer avec la requête
},
dataType: 'json',
error: function (request, status, error) {
// Gestion des erreurs
console.error("AJAX Error:", error);
},
success: function (data) {
// Traitement de la réponse JSON
console.log("AJAX Success:", data);
// Autres actions à effectuer en cas de succès
}
});
});
Qui doit pointer donc sur Projote.ajax.php :
try {
require_once dirname(__FILE__) . '/../../../../core/php/core.inc.php';
include_file('core', 'authentification', 'php');
if (!isConnect('admin')) {
throw new Exception(__('401 - Accès non autorisé', __FILE__));
}
/* Fonction permettant l'envoi de l'entête 'Content-Type: application/json'
En V3 : indiquer l'argument 'true' pour contrôler le token d'accès Jeedom
En V4 : autoriser l'exécution d'une méthode 'action' en GET en indiquant le(s) nom(s) de(s) action(s) dans un tableau en argument
*/
ajax::init();
if ($action == 'Validate') {
$eqId = init('id');
$eqLogic = Projote::byId(init('id'));
log::add('Projote', 'debug', 'Ajax::Exec Validate eqId : ' . $eqId);
$result = ProJote::updateInfoPronote('Validate');
ajax::success($return);
}
// Vérifiez si l'action demandée est disponible
if (isset($_POST['action']) && $_POST['action'] == 'updateInfoPronote') {
// Récupérez le paramètre supplémentaire, si nécessaire
$param = isset($_POST['param']) ? $_POST['param'] : '';
// Exécutez la commande UpdateInfoPronote avec le paramètre
$result = ProJote::updateInfoPronote($param);
// Retournez une réponse au format JSON
echo json_encode($result);
}
ajax::success();
throw new Exception(__('Aucune méthode correspondante à', __FILE__) . ' : ' . init('action'));
/* * *********Catch exeption*************** */
} catch (Exception $e) {
ajax::error(displayException($e), $e->getCode());
}
Mon problème est que sur le navigateur web quand je clique j’ai une erreur 403 :