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
discourseEmbedUrldurch 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.