[IPX800v4] Sources de données (never) - blocage requête CORS

Bonjour, je rencontre un pb sur une source de données, qui se positionne à NEVER à chaque fois que je la configure. J’ai constaté que dans le navigateur la requête est bloquée par CORS (cross domain).

La source de données est un fichier JSON hébergé sur un ESP32 qui fonctionne parfaitement.
L’ESP32 dispose d’une interface web, et génère un fichier JSON à chaque lecture du capteur SQM (1min). Le SQM mesure la qualité et la transparence du ciel nocturne.

Ex ;
Chip : « TLS2591 »
Sqm: 11.76289028

{« Chip »:« TLS2591 »,« Sqm »:11.76289028}

Le tout est en réseau local sur un range IP 192.168.0.0/24. Avez vous une idée pour contourner le pb…
Dois je intégrer dans le code de l’ESP32 un entête particulier ? Que jusque là je ne connais pas :slight_smile:
Merci de votre aide

Bonjour,
vous devez activer les CORS sur l’ESP32.
Si vous programmez en C++ et que vous utilisez la bibliothèque WebServer.h, ajoutez cette ligne dans la routine Setup puis recompilez :

  server.enableCORS();

bonne journée

Merci beaucoup info rapide et efficace !

pensez à faire un petit retour :slight_smile:

J’utilise préférentiellement
ESPAsyncWebServer.h mais il y a une solution dans le code à appliquer avant de démarrer le server c’est d’ajouter le header suivant :

DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*");

Portion de code arduino/ESP32 le fichier data.json est écrit en SPIFFS sur l’ESP32 (lib SPIFFS.h)
Cette portion est appelée lorsque l’on demande l’url :
http://monip/data.json dans le navigateur

#include <ESPAsyncWebServer.h>
#include <SPIFFS.h>
AsyncWebServer server (80);
 
void setup()
{
server.on("/data.json", HTTP_GET , [](AsyncWebServerRequest *request) 
  {
     request->send(SPIFFS, "/data.json","application/json");
  });
//Header à ajouter pour CORS
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*");
//Header 
server.begin();
}

void loop ()
{
etc ... etc ...
}

Votre solution « match » parfaitement avec la librairie que vous indiquez :wink:

merci de nous dire si ça fonctionne ou à défaut partager la solution mise en place :wink:

1 « J'aime »