Здравствуйте! У нас возникает ошибка встраивания, в iframe отображается:
Ошибка встраивания
Referer:
Referer либо не был отправлен, либо не совпал ни с одним из следующих хостов:
хотя домены идентичны, а в консоли выводится:
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)
Мы используем «Альтернативную конфигурацию», поэтому тема решённая проблема нам не очень помогает.
(Альтернативная конфигурация) Ссылки на существующие темы
Некоторые пользователи предпочитают, чтобы Discourse не создавал темы автоматически на их форумах. Они хотят создавать темы самостоятельно, а затем просто указывать своему коду встраивания, с какой темой их ассоциировать. Это можно сделать, немного изменив код встраивания:
<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>Единственное отличие здесь в том, что мы заменили
discourseEmbedUrlна идентификатор темы из Discourse. Если вы сделаете это, тема не будет создана, и комментарии из этой темы будут автоматически отображены.
из Embed Discourse comments on another website via Javascript
Есть ли простой способ отладить это? Откуда берётся реферер и почему он может быть пустым?
Является ли это известной/распространённой проблемой и есть ли способ скрыть iframe или его содержимое при возникновении ошибки?
При переходе к скрипту, где возникает ошибка, кажется, что он не может найти реферер для postMessage в элементе #data-embedded.