Erreur d'intégration pour les publications existantes

Bonjour ! Nous rencontrons une erreur d’intégration. L’iframe affiche :

Erreur d'intégration
Référent :
Le référent n'a soit pas été envoyé, soit ne correspond à aucun des hôtes suivants :

même si les domaines sont identiques, et la console indique :

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)

Nous utilisons la « Configuration alternative », donc le sujet résolu ne nous aide pas vraiment.

(Configuration alternative) Lien vers des sujets existants

Certaines personnes préfèrent ne pas que Discourse crée automatiquement des sujets sur leurs forums. Elles souhaitent créer elles-mêmes les sujets, puis indiquer simplement à leur code d’intégration quel sujet associer. Vous pouvez le faire en modifiant légèrement votre code d’intégration :

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

La seule différence ici est que nous avons remplacé discourseEmbedUrl par l’ID d’un sujet de Discourse. Si vous faites cela, aucun sujet ne sera créé et les commentaires de ce sujet seront automatiquement affichés.

provenant de Embed Discourse comments on another website via Javascript

Y a-t-il un moyen simple de déboguer cela, d’où provient le référent et pourquoi pourrait-il être vide ?
Est-ce un problème connu ou courant, et existe-t-il un moyen de masquer l’iframe ou son contenu en cas d’erreur ?

En cliquant sur le script où l’erreur se produit, il semble impossible de trouver un référent pour un postMessage dans l’élément #data-embedded.

Vous pouvez inspecter l’iframe intégrée dans votre page à l’aide de l’inspecteur et vérifier si elle contient une balise meta avec le bon referer. Elle devrait ressembler à ceci : <meta id='data-embedded' data-referere="VOTRE_SITE">

VOTRE_SITE devrait être automatiquement rempli par l’iframe.

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

C’est vide :scream: Que signifie cela ?

Cela signifie que, pour une raison quelconque, l’iframe que vous intégrez ne reçoit pas de référent. Je ne sais pas si quelque chose le supprime, comme un proxy ou une redirection, ou s’il s’agit d’un problème de navigateur.

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