Situation :
Je développe un plugin et j’utilise nginx comme proxy inverse vers rails:3000. Tout fonctionne très bien, mais je rencontre des problèmes d’accès à l’API avec les redoutables erreurs CORS, que nous connaissons tous et que nous « aimons » tant.
Accès à XMLHttpRequest à 'blah blah blah' depuis l'origine 'foo bar bing' bloqué par la politique CORS : l'en-tête 'Access-Control-Allow-Origin' est absent de la ressource demandée.
Jusqu’à présent, j’ai essayé d’ajouter des en-têtes dans nginx, mais pour une raison quelconque, ces en-têtes n’apparaissent pas lors du débogage dans Chrome.
J’ai également essayé d’utiliser nginx pour modifier les proxy_headers de Rails vers nginx, mais sans succès.
J’ai aussi essayé d’utiliser une extension Chrome pour insérer les en-têtes, mais cela ne semble pas fonctionner non plus, même si un test CORS du navigateur via un site de test CORS indique que tout est autorisé.
Ensuite, j’ai essayé d’ajouter le gem rack-cors, mais je n’ai pas réussi à faire fonctionner config.middleware en raison d’erreurs de freeze.
Cela bloque le développement et j’ai l’impression d’avoir atteint un mur ![]()
Existe-t-il un moyen d’ajouter ces en-têtes directement dans Discourse dans un fichier de configuration (ou mieux encore dans le plugin) afin d’envoyer les divers en-têtes HTTP que nous souhaitons tester et envoyer dans l’environnement de développement ?
Ou est-il possible de faire fonctionner le gem rack-cors ? Si oui, où dans le plugin devrais-je ajouter le code ?
Réf : RubyDoc.info: File: README – Documentation for rack-cors (0.4.0) – RubyDoc.info
Comme mentionné, les (nombreuses) choses que j’ai essayées jusqu’à présent et ci-dessus dans rubydocs se soldent toutes par « ça ne fonctionne pas ici », toujours pareil.
J’ai même essayé d’oublier CORS pour le moment et d’ajouter simplement un seul en-tête de cache HTTP, mais cela aussi s’est avéré être une impasse de mon côté.
Je suppose que tout le monde rit de ces problèmes liés à CORS, moi aussi ; mais si vous pouviez me partager comment ajouter mes propres en-têtes de test (CORS ou non) dans l’environnement de test de développement, je vous en serais très reconnaissant.
Merci.
