Discourse-Einbettung fehlgeschlagen (Referer verwechselt)

Hallo,

ich bin dabei, Discourse in eine MediaWiki-Instanz einzubetten, und dabei scheint ich ein seltsames Problem zu haben.

Wenn ich meine Wiki-Seite mit einem bestehenden Discourse-Thema verknüpfe, funktioniert alles einwandfrei:

window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',|
                          topicId: 18};

Aber wenn ich versuche, das Thema zu erstellen, schlägt es fehl:

window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',|
                          discourseEmbedUrl = 'https:' + mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName')};

Das Iframe wird zunächst einmal mit folgendem geladen:

<meta id="data-embedded" data-referer="https://wiki.dev.tripleperformance.fr/wiki/Sandbox">

Dann, nach 30 Sekunden (verursacht durch das meta http-equiv="refresh" im Iframe), wird das Iframe neu geladen mit:

<meta id="data-embedded" data-referer="https://forum.dev.tripleperformance.fr/embed/comments?embed_url=https%3A%2F%2Fwiki.dev.tripleperformance.fr%2Fwiki%2FSandbox">`

An diesem Punkt tritt ein Fehler in der Konsole auf:

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://forum.dev.tripleperformance.fr') does not match the recipient window's origin ('https://wiki.dev.tripleperformance.fr').

Das liegt wahrscheinlich daran, dass der Referer im data-embedded-Attribut nun auf sich selbst zeigt und nicht mehr auf die übergeordnete Seite (was möglicherweise sogar erwartet ist, da der Initiator des Neuladens sich selbst ist).

Hinweis: Ich arbeite auf einem Entwicklungsmaschine, die aufgrund von Docker und anderen Faktoren langsam ist. Es ist durchaus möglich, dass es sich um eine Race-Condition oder Ähnliches handelt…?

So viel dazu: Ich habe versucht, im Forum einen Beitrag mit einem Link zu einer Wiki-Seite zu erstellen, und es hat funktioniert (die Einbettung wird korrekt angezeigt). Ich habe auch versucht, die URL von innerhalb des Containers mit curl abzurufen, was erfolgreich war. Ich verstehe nicht, warum das neue Thema nicht sofort erstellt wird…

Hallo Bertrand!

Hoffentlich ist dieses Problem für dich mittlerweile gelöst, aber falls nicht, könntest du den Code im test-passed-Branch ausprobieren. Dieser enthält eine heute eingeführte Korrektur für ein Problem mit ähnlichen Symptomen.

Das genannte Problem wurde im Code erst nach dem 25. August eingeführt, also nachdem du dies gemeldet hast. Daher ist es unwahrscheinlich, dass es sich um exakt dasselbe Problem handelt.

Falls es für dich jedoch noch nicht gelöst ist, könntest du es trotzdem versuchen.

Viele Grüße!

3 „Gefällt mir“

Hallo Leonardo,

Danke dafür. Ich habe es gerade versucht – mit nicht viel mehr Erfolg. Ich habe mich aber nicht zu sehr damit beschäftigt, da diese Art der Integration nicht zu unserer Plattform passt (ich ziehe es vor, dass das Thema bedarfsgesteuert durch etwas Code erstellt wird und nicht für jede Seite, die wir auf der Plattform haben).

Tut mir leid, das zu hören, aber es war einen Versuch wert :slight_smile:
Prost!