Aucun en-tête 'Access-Control-Allow-Origin' présent malgré le réglage de DISCOURSE_ENABLE_CORS: true

J’ai ajouté les déclarations suivantes dans notre app.yml :

  DISCOURSE_ENABLE_CORS: true
  DISCOURSE_CORS_ORIGIN: '*'

J’ai temporairement défini ‘*’ pour éliminer les variables lors des tests. J’ai également essayé de définir explicitement les URL, mais sans succès.

Cependant, malgré ce qui précède, nous obtenons toujours :

Blockquote

L’en-tête ‘Access-Control-Allow-Origin’ est absent de la ressource demandée.

Contexte : Nous disposons d’un client iOS basé sur Unity qui interagit avec certaines API Discourse et, pour les tests, nous utilisons WebGL. Nous rencontrons ce problème lors des tests sur nos navigateurs exécutant spécifiquement WebGL.

J’observe également, à partir des tests Postman, que toutes les requêtes comportent une stratégie de référence ‘strict-origin-when-cross-origin’ dans les en-têtes de réponse.

Toute aide serait appréciée. Merci !

1 « J'aime »

Le paramètre cors origins est géré dans admin > paramètres > sécurité.

Vous avez uniquement besoin de DISCOURSE_ENABLE_CORS: dans votre fichier app.yml.

1 « J'aime »

J’ai également essayé et testé cela.

Et pour notre configuration de site unique, définir l’origine dans le fichier .yml ou via l’interface d’administration devrait avoir le même effet, selon : What is the purpose of Settings -> Security -> CORS origins vs similar environment setting?

1 « J'aime »

Je ne suis pas sûr que nous prenions en charge les caractères génériques ici. Pouvez-vous essayer avec un vrai domaine ? Nous utilisons les paramètres CORS sur plusieurs sites avec des domaines configurés, et cela semble fonctionner correctement.

1 « J'aime »

Je l’ai aussi configuré sur l’un de mes sites et cela fonctionne.

1 « J'aime »

J’ai essayé avec un domaine, sans succès. Y a-t-il un moyen de confirmer que les variables d’environnement sont correctement définies ? (ou que le redémarrage de l’application a configuré le CORS sans renvoyer de requêtes, je cherche simplement des pistes pour déboguer).

Je pense que c’est la partie du code qui gère les paramètres CORS, au cas où cela serait utile.

1 « J'aime »

Dans les journaux d’accès nginx, je remarque que l’appel OPTIONS renvoie une erreur 404 (et précède l’erreur sur l’appel GET).

1 « J'aime »