Fehler beim Einbetten bestehender Beiträge

Hallo! Wir erhalten einen Fehler beim Einbetten („Error Embedding“). Der iframe meldet:

Error Embedding
Referer: 
Der Referer wurde entweder nicht gesendet oder stimmt mit keinem der folgenden Hosts überein:

Obwohl die Domänen identisch sind, meldet die Konsole:

Uncaught SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin '' in a call to 'postMessage'.
    _embed-application-3723be59920e64ecda9d66b1e7c4c55378fb9dadfa7f422febd4f1b346c1aa05.js:6 Uncaught DOMException: Failed to execute 'postMessage' on 'Window': Invalid target origin '' in a call to 'postMessage'.
        at e (https://sjc1.discourse-cdn.com/business5/brotli_asset/embed-application-3723be59920e64ecda9d66b1e7c4c55378fb9dadfa7f422febd4f1b346c1aa05.js:1:42)
        at window.onload (https://sjc1.discourse-cdn.com/business5/brotli_asset/embed-application-3723be59920e64ecda9d66b1e7c4c55378fb9dadfa7f422febd4f1b346c1aa05.js:1:470)

Wir verwenden die „Alternate configuration“ (alternative Konfiguration), daher hilft das gelöste Thema uns nicht wirklich.

(Alternate Configuration) Verlinkung zu bestehenden Themen

Manche Nutzer möchten nicht, dass Discourse automatisch Themen in ihren Foren erstellt. Sie möchten die Themen selbst erstellen und dann einfach ihrem Einbettungscode mitteilen, welches Thema sie verknüpfen möchten. Dies lässt sich erreichen, indem Sie Ihren Einbettungscode leicht anpassen:

<div id='discourse-comments'></div>

<script type="text/javascript">
  DiscourseEmbed = { discourseUrl: 'http://discourse.example.com/',
                     topicId: 12345 };

  (function() {
    var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
    d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
  })();
</script>

Der einzige Unterschied besteht darin, dass wir discourseEmbedUrl durch die ID eines Discourse-Themas ersetzt haben. Wenn Sie dies tun, wird kein neues Thema erstellt und die Kommentare aus diesem Thema werden automatisch angezeigt.

Quelle: Embed Discourse comments on another website via Javascript

Gibt es eine einfache Möglichkeit, dies zu debuggen? Woher wird der Referer bezogen und warum könnte er leer sein?
Ist dies ein bekanntes/häufiges Problem und gibt es eine Möglichkeit, den iframe oder seinen Inhalt bei einem Fehler auszublenden?

Beim Durchsuchen des Skripts, in dem der Fehler auftritt, scheint es nicht möglich, einen Referer für eine postMessage-Anfrage im Element #data-embedded zu finden.

Sie können das in Ihrer Seite eingebettete iframe über den Inspektor einsehen und prüfen, ob es ein Meta-Tag mit dem korrekten Referer enthält. Es sollte etwa so aussehen: <meta id='data-embedded' data-referer="YOUR_SITE">

YOUR_SITE wird vom iframe automatisch ausgefüllt.

<meta id="data-embedded" data-referer="">

Es ist leer :scream: Was bedeutet das?

Das bedeutet, dass das von Ihnen eingebettete iframe aus irgendeinem Grund keinen Referrer erhält. Ich bin mir nicht sicher, ob etwas, wie ein Proxy oder eine Weiterleitung, diesen entfernt, oder ob es sich um ein Browser-Problem handelt.

https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963/353?u=falco