Errore di embedding per i post esistenti

Ciao! Stiamo ricevendo un errore di embedding, l’iframe mostra

Errore di embedding
Referer:
Il referer non è stato inviato o non corrisponde a nessuno dei seguenti host:

nonostante i domini siano identici, e la console riporta:

Uncaught SyntaxError: Impossibile eseguire 'postMessage' su 'Window': Origine target non valida '' in una chiamata a 'postMessage'.
    _embed-application-3723be59920e64ecda9d66b1e7c4c55378fb9dadfa7f422febd4f1b346c1aa05.js:6 Uncaught DOMException: Impossibile eseguire 'postMessage' su 'Window': Origine target non valida '' in una chiamata a '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)

Stiamo utilizzando la ‘Configurazione alternativa’, quindi l’argomento risolto non ci è molto utile.

(Configurazione alternativa) Collegamento a argomenti esistenti

Alcune persone preferiscono non far creare a Discourse gli argomenti sui loro forum in modo automatico. Preferiscono creare gli argomenti loro stessi, per poi indicare semplicemente al codice di embedding quale argomento associare. Puoi farlo modificando leggermente il tuo codice di embedding:

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

L’unica differenza qui è che abbiamo sostituito discourseEmbedUrl con l’ID di un argomento di Discourse. Se lo fai, non verrà creato alcun argomento e i commenti di quell’argomento verranno visualizzati automaticamente.

da Embed Discourse comments on another website via Javascript

Esiste un modo per debuggarlo facilmente? Da dove viene recuperato il referer e perché potrebbe essere vuoto?
È un problema noto/commune e c’è un modo per nascondere l’iframe o il suo contenuto quando si verifica un errore?

Cliccando sul codice sorgente dove si verifica l’errore, sembra che non riesca a trovare un referer per un postMessage nell’elemento #data-embedded.

Puoi esaminare l’iframe incorporato nella tua pagina tramite lo strumento di ispezione e verificare se contiene un tag meta con il referer corretto. Dovrebbe essere simile a questo: <meta id='data-embedded' data-referere="TUO_SITO">

TUO_SITO dovrebbe essere compilato automaticamente dall’iframe.

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

È vuoto :scream: Cosa significa?

Significa che, per qualche motivo, l’iframe che stai incorporando non riceve il referrer. Non sono sicuro che qualcosa lo stia rimuovendo, come un proxy o un reindirizzamento, o se si tratti di un problema del browser.

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