嵌入式小部件上的 Forbidden 错误

我正在尝试实现 Discourse 嵌入式小部件,但遇到了禁止错误。我从“管理”>“自定义”>“嵌入”选项卡复制了嵌入代码,并将其粘贴到我的网站上。我还尝试在 Netlify 上部署一个包含此代码的 HTML 文件。在几次网络请求后,我在此端点收到了禁止错误:

POST
https://poc-antecipa.discourse.group/client-performance/report.json

我做错了吗?我该怎么办?

1 个赞

您是否已将主机添加到 /admin/customize/embedding 下的“允许的主机”列表中?

您的 Discourse 站点要求用户登录才能查看其主题,并且它位于 discourse.group 域的子域上。我怀疑您遇到了这个问题:https://meta.discourse.org/t/embed-discourse-comments-on-another-website-via-javascript/31963?page=2#embedding-comments-from-a-private-site-9

除非有什么变化,否则据我所知,嵌入式评论来自私有 Discourse 站点的唯一情况是,当 Discourse 站点位于网站域的子域上,并且查看网页的用户当前已登录 Discourse。

如果这是正确的,那么这意味着无法嵌入来自 Discourse Basic 计划站点的评论。

2 个赞

是的,我已经配置了允许的主机。当我在网站上添加嵌入时,会创建一个 iframe,其高度很小,因此我们只能看到一个深色的矩形。如果将高度设置为 800px 左右,我们就能看到登录页面。但这个登录页面无法正常工作,我收到一个“BAD CSRF”错误。

我试图将 Discourse 用作论坛,本质上是在我们登录的系统内创建一个聊天。我们已经为在前端看到 Discourse 的用户创建了一个帐户。如何在此用户不显示 Discourse 登录页面的情况下登录此用户?有什么可能性吗?

我还试图使用提供免费试用的 Discourse 托管服务来创建一个概念验证 (POC)。但是,最终目标是在我们的域上自托管 Discourse,为 Discourse 使用一个子域,为上述应用程序使用另一个子域。

我不知道这是否需要深入研究您的设置才能克服眼前的障碍,也许还需要更多工作才能达到您的目标。在 Meta 上这样做效率低下。也许可以考虑在 Marketplace 提问?