Problème CORS policy (javascript - ajax)

Bonjour,

Je suis en train de mettre en place un bouton qui déclare le module volet directement dans Gladys.
Je rencontre le problème CORS policy

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://192.168.0.1/room?token=b6818442ed1e307f8f...",
  "method": "GET",
  "headers": {
    "Content-Type": "application/json",
   "User-Agent": "voletRoulant/2.0.0",
    "Accept": "*/*",
    "Cache-Control": "no-cache",
    "Host": "192.168.0.1",,
    "accept-encoding": "gzip, deflate",
    "Connection": "keep-alive",
    "cache-control": "no-cache"
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

Access to XMLHttpRequest at ‘http://192.168.0.1/room?token=0d48c8aa39979dcaf309be…’ from origin ‘http://192.168.0.8’ has been blocked by CORS policy: Request header field cache-control is not allowed by Access-Control-Allow-Headers in preflight response.

Comment je peux résoudre cela, les scripts sont en javascript ?
Merci pour l’aide

Mon soucis, c’est pour mettre à jour le devicetype. La commande “path” est bloqué (CORS policy)
Je ne vois pas comment passer la commande pour éviter ça.

Si quelqu’un a une piste ???

Merci

Comme l’indique l’erreur, “Request header field cache-control is not allowed by Access-Control-Allow-Headers”.

Retire l’attribut ““cache-control”: “no-cache”” et “Cache-Control”: “no-cache”, de ton objet et ça devrait fonctionner.

D’ailleurs inutile de mettre tout ce code, un simple

fetch('http://192.168.0.1/room?token=b6818442ed1e307f8f...')

fais le boulot :slight_smile:

Parfait :+1: merci @pierre-gilles - je n’avais pas pensé à Fetch

@pierre-gilles
je tombe sur cette erreur Method PATCH is not allowed en voulant mettre à jour le devicetype

Access to fetch at 'http://192.168.0.10/devicetype/55/?token=0d48c8aa39979dcaf309bec...' from origin 'http://192.168.0.8' has been blocked by CORS policy: Method PATCH is not allowed by Access-Control-Allow-Methods in preflight response.

voici l’entête de réponse

Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, HEAD
Access-Control-Allow-Origin: http://192.168.0.8
Access-Control-Expose-Headers: 
Allow: ACL,BIND,CHECKOUT,CONNECT,COPY,DELETE,GET,HEAD,LINK,LOCK,M-SEARCH,MERGE,MKACTIVITY,MKCALENDAR,MKCOL,MOVE,NOTIFY,PATCH,POST,PROPFIND,PROPPATCH,PURGE,PUT,REBIND,REPORT,SEARCH,SUBSCRIBE,TRACE,UNBIND,UNLINK,UNLOCK,UNSUBSCRIBE

une fois le devicetype créé, j’ai besoin de mettre à jour ‘identifier’ avec le bon id
Comment faire ?

Merci

Le backend de Gladys 3 n’autorise pas de cross-request en PATCH effectivement!

Pour ça je n’ai pas de solution pour toi, la v4 en alpha est sortie hier, la v3 ne sera plus mise à jour!

dans la v4 cela sera possible ?

Oui ce sera possible

1 Like