插入 JavaScript 导致 403 错误

根据本论坛之前的帖子,应该可以将自定义 JavaScript 代码插入默认主题的 <header><body> 字段中,但每当我尝试这样做时,都会弹出一个提示“403 错误”的窗口。鉴于我是管理员而非开发人员,我该如何添加我的一行自定义 JavaScript 代码?

2 个赞

由于某些 Referrer-Policy 设置,您可能没有权限使用脚本资源。请确保资源为公开访问或已授予其他正确的权限。

我也遇到了同样的问题。你解决了吗,@Judith

即使是使用 <script></script> 的测试也给我返回了 403,所以我不太确定这是否是 Referrer-Policy 的问题?

很遗憾不是 :frowning:

您能否提供更多关于您想添加的内容及其位置的详细信息?这样可能会引起更多社区的响应?

1 个赞

它在任何级别都会失败。我转到“默认主题”>“编辑 CSS/HTML”>“通用”>“标题”,并尝试添加

<script>
alert("Test");
</script>

即使这样也会失败,并弹出一个“403 错误”消息,所以我没有尝试做任何更复杂的事情。

我在 DigitalOcean 上有一个完全按照说明进行的标准安装,并且已更新到最新版本。是否需要更改标准安装的任何内容才能使用 Javascript?

我認為這沒什麼用,所以先把它收起來……

可以試著將其添加為自定義主題組件嗎?

快速操作指南:

  • 前往 /admin/customize/themes
  • 點擊 安裝,然後點擊 創建新
  • 給它命名,然後選擇「組件」。
  • 創建
  • 將其添加到您的主題
  • 點擊 編輯 CSS/HTML 按鈕,然後在此處進行更改

然後保存。:+1:


不過,我也在我的默認主題標頭中測試過,那也奏效了。所以您的設置可能有些不尋常。在安全模式下觸發它時,它是否有效?

等等,這聽起來很熟悉。您是否有可以關閉的瀏覽器擴展程序?(或嘗試在隱私窗口中操作)控制台中是否有更多關於錯誤的詳細信息?

您在 Discourse 前面使用了任何类型的 Web 应用程序防火墙(例如 Cloudflare 或 AWS WAF)吗?它可能将其检测为跨站脚本攻击。

“头部”怎么样,而不是“标题”?

2 个赞

一周前在我测试的 Discourse 实例上并没有出现此错误,但本周出现了。
我尝试了所有可能的位置,但老实说,JS 应该放在闭合 body 标签之前,而不是放在 head 中,所以我想让它放在那里(而且,这正是上周奏效的方法)。
它只是弹出一个 403 错误 模态框,仅此而已。
我已确保这并非由组件或主题引起……但不确定是否是我无意中更改了某些设置?