Appdeamon probleme de CORS Preflight Did Not Succeed

Bonjour,

Mon problème

Renseigner votre problème

Ma configuration


[center]

host_os Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2026.03.0
agent_version 1.6.0
docker_version 27.1.1
disk_total 232.7 GB
disk_used 17.7 GB
nameservers fd0f:ee:b0::1, 192.168.1.254
healthy true
supported failed to load: Unsupported
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
supervisor_api ok
version_api ok
installed_addons Advanced SSH & Web Terminal (23.0.3), Mosquitto broker (6.5.2), Studio Code Server (6.0.1), AppDaemon (0.18.1), MQTT Explorer (browser-1.0.3), ESPHome Device Builder (2026.2.4), Cloudflared (7.0.4), ZeroTier One (0.25.0), Get HACS (1.3.1), Zigbee2MQTT (2.9.1-1), Homebridge (0.2.2), Matter Server (8.3.0), Music Assistant (2.7.11)

[/center]
Bonjour je ne suis pas sur d’être dans la bonne section. Enfin je me tente dans le devellopement d’un projet perso. Si je réussi, je ferais un post pour apprendre plus. Dans un composant Lit-Element je tente de faire un POST
`
_getHeaders() {
return {
« Content-Type »: « application/json »
};
}
async _addPiece() {
if (!this._newPieceName || this._newPieceName.trim() === «  ») {
alert(« Saisis un nom de piece ! »);
return;
}

try {
  const response = await fetch(`/api/appdaemon/add_piece`, {
    method: "POST",
    headers: this._getHeaders(),
    body: JSON.stringify({ nom: this._newPieceName.trim() })
  });

  if (!response.ok) {
    throw new Error(`HTTP error! status: ${response.status}`);
  }

  this._newPieceName = "";
  await this._getPieces();
  this.error = null;
} catch (e) {
  this.error = "Erreur lors de l'ajout : " + e.message;
  console.error("_addPiece fetch error", e);
}

}
Et appdeamon.yamlhttp:
url: http://0.0.0.0:5050
allow_cors: true
headers:
Access-Control-Allow-Origin: « * »
Access-Control-Allow-Headers: « Content-Type »
Access-Control-Allow-Methods: « GET, POST, PUT, DELETE, OPTIONS »
`
Je peste avec cette erreur
Blocage d’une requête multiorigine (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://192.168.1.5:5050/api/appdaemon/add_piece. Raison : échec de la réponse de pré-vérification des requêtes CORS. Code d’état : 405.
Merci de m’éclairer

Hello @Shark je n’ai pas compris si tu avais un problème dans le code yaml ou avec system packages / python packages.
Je vois quand même une adresse 192.168.1.xx alors que si c’est appdaemon est un add-on je ne suis pas sûr que l’adresse soit reconnue :thinking:

Bonjour et merci
J’ai une automatisation qui gere un fichier index.yaml et je suis en train de me creer un composant avec Lit-Element je peux faire un Get de ce fichier index mais quand je fais un POST je suis rejeté
Postman marche…
AppDeamon accepte-t-il des requêtes? Je tourne en rond sur internet

XHRPOST
http://192.168.1.5:5050/api/appdaemon/add_piece

XHROPTIONS
http://192.168.1.5:5050/api/appdaemon/add_piece
CORS Preflight Did Not Succeed

Blocage d’une requête multiorigine (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://192.168.1.5:5050/api/appdaemon/add_piece. Raison : échec de la réponse de pré-vérification des requêtes CORS. Code d’état : 405.
Blocage d’une requête multiorigine (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://192.168.1.5:5050/api/appdaemon/add_piece. Raison : échec de la requête CORS. Code d’état : (null).

Pour info mon appdeamon.yaml

http:
  url: http://0.0.0.0:5050
  allow_cors: true
  headers:
    Access-Control-Allow-Origin: "*"
    Access-Control-Allow-Headers: "Content-Type"
    Access-Control-Allow-Methods: "GET, POST, PUT, DELETE, OPTIONS"

et dans mon fichier lit-element

  async _addPiece() {
    if (!this._newPieceName || this._newPieceName.trim() === "") {
      alert("Saisis un nom de piece !");
      return;
    }
    try {
      await fetch("http://192.168.1.5:5050/api/appdaemon/add_piece", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ nom: this._newPieceName.trim() })
      });
      this._newPieceName = "";
      await this._getPieces();
    } catch (e) {
      this.error = "Erreur lors de l'ajout";
    }
  }

Mon probleme est resolu j’envoie maintenant

headers: { "Content-Type": "text/plain" },

Bon j’ai passé 4 jours a chercher :joy:

1 « J'aime »