Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

API Jeedom et CORS

Pour échanger sur les plugins classés en catégorie "Programmation"
jerome31
Timide
Messages : 2
Inscription : 24 nov. 2016, 12:46

API Jeedom et CORS

Message par jerome31 » 08 mai 2019, 14:02

Bonjour,

J'aimerai pouvoir appeler directement l'API Jeedom en javascript.
Actuellement je me prend une alerte CORS du navigateur Web, c'est dommage.

Exemple si je vais sur l'url :
http://X.X.X.X/core/api/jeeApi.php?apikey=XXX&type=cmd&id=335
Je récupère bien ma valeur.

Si je vais en console (Touche F12 du navigateur) sur une page ou j'ai jQuery et que je tape :
$.get('http://X.X.X.X/core/api/jeeApi.php?apikey=XXX&type=cmd&id=335', function(v) { console.log(v); })

J'ai comme réponse :
Access to XMLHttpRequest at 'http...' from origin 'http...' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

Une idée ? :roll:

Merci

Avatar de l’utilisateur
cadavor
Actif
Messages : 1284
Inscription : 21 juin 2015, 22:00
Localisation : 34

Re: API Jeedom et CORS

Message par cadavor » 17 mai 2019, 13:52

Comme ca je dirais que les Header reçus par le navigateur ne sont pas conformes
(The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.)
Il faudrait détailler les header reçus pour voir précisement...
Jeedom Stable 3.3
NUC Z83 + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062 + ZW080
GH Mini + Orvibo AllOne + Playbulb + Miband2

NoumeroDouo
Timide
Messages : 31
Inscription : 30 janv. 2018, 14:08

Re: API Jeedom et CORS

Message par NoumeroDouo » 28 sept. 2019, 15:26

@jerome31 je sais pas ce que tu connais aux CORS, mais en résumé: un appel ajax qui vient d'un domaine différent sera par défaut rejeté. Tu peux ajouter des rules dans le header de l 'API pour autoriser certaines (ou tous) les domaines extérieurs a faire un Get ou un Post. Dans ton cas il semble que le header soit incorrect, tu ne peux donc pas y accéder en Get.

J'ai eu le meme soucis, quand j'essaie d'appeler http://x.x.x.x/core/ajax/event.ajax.php

Du coup pour éviter ca il y a moyen d'aller bidouiller le fichier php de l'API.
Avec le plugin "outil de developpement" on le retrouve facilement, on l'edit, on rajoute un header de CORS juste apres la balise d'ouverture du PHP et ca marche.
exemple:

Code : Tout sélectionner

header("Access-Control-Allow-Origin: http://mon.domaine.fr");
et les requetes venant de ce domaine-la seront acceptées.

Répondre

Revenir vers « [Catégorie] Programmation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités