Bonjour,
Je suis en train d’intégrer Discourse dans une instance MediaWiki et je rencontre un problème étrange.
Lorsque je lie une page de mon wiki à un sujet Discourse existant, tout fonctionne parfaitement :
window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',
topicId: 18};
Mais lorsque j’essaie de créer le sujet, cela échoue :
window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',
discourseEmbedUrl = 'https:' + mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName')};
L’iframe est chargée une première fois avec :
<meta id="data-embedded" data-referer="https://wiki.dev.tripleperformance.fr/wiki/Sandbox">
Ensuite, après 30 secondes (causé par le meta http-equiv="refresh" dans l’iframe), l’iframe se recharge avec :
<meta id="data-embedded" data-referer="https://forum.dev.tripleperformance.fr/embed/comments?embed_url=https%3A%2F%2Fwiki.dev.tripleperformance.fr%2Fwiki%2FSandbox">
À ce stade, une erreur apparaît dans la console :
Échec de l'exécution de 'postMessage' sur 'DOMWindow' : l'origine cible fournie ('https://forum.dev.tripleperformance.fr') ne correspond pas à l'origine de la fenêtre destinataire ('https://wiki.dev.tripleperformance.fr').
Cela est probablement dû au fait que le referer dans l’attribut data-embedded est maintenant lui-même et non la page parente (ce qui pourrait en fait être attendu puisque l’initiateur du rafraîchissement est lui-même).
Note : Je suis sur une machine de développement qui est lente en raison de Docker et de tout le reste. Il est tout à fait possible que je sois dans une condition de course ou quelque chose de similaire… ?