J’arrive à utiliser l’api http en javascript mais pas l’api jsonrpc car elle ne semble pas accessible directement en javascript à cause du CORS. Vous me confirmez que c’est bien le cas ou j’ai fais une erreur quelque part ?
Si c’est bien le cas, c’est dommage de devoir passer par un proxy node ou php pour ce problème de CORS.
//Fonctionne bien
fetch('https://xxx.eu.jeedom.link/core/api/jeeApi.php?apikey=xxx&type=cmd&id=30');
//Access to fetch at 'https://xxx.eu.jeedom.link/core/api/jeeApi.php' from origin 'https://xxx.fr' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.
fetch('https://xxx.eu.jeedom.link/core/api/jeeApi.php', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "1000",
"method": "cmd::execCmd",
"params": {"apikey": "xxx", "id": "30"}
})
});
Via node ça fonctionne bien (car pas de vérif sur le CORS) mais dans le navigateur ça ne fonctionne pas car le navigateur vérifie le CORS et je ne peux pas appeler jsonrpc directement en javascript.
J’ai essayé avec différents headers, de l’appeler depuis localhost ou via un serveur http et https, je n’ai pas réussi. Je vais essayer de voir dans le code source de jeeApi.php car je ne comprend pas…