删除主题后无限滚动请求

继续讨论 允许成员从跟踪偏好设置中删除受限标签/类别

概述

当用户正在积极查看一个随后被删除的主题时,连续滚动(向上或向下)会触发无限循环的 posts.json API 调用。这些调用持续返回 403 Forbidden 错误,但应用程序未能识别删除或停止加载不存在的内容,导致持续的后台网络活动和糟糕的用户体验。

复现步骤

  1. 准备(管理员/版主用户):
    • 以具有主题删除权限的用户(例如,管理员或版主)登录。
    • 创建一个包含几篇帖子的新主题,以确保有内容可供滚动。
    • 记下该主题的页面 URL。
  2. 用户体验(普通用户):
    • 以普通用户(无删除权限)登录。
    • 打开一个新的浏览器标签页或窗口。
    • 导航到步骤 1 中创建的主题。
    • 打开浏览器的开发者工具,切换到“网络”选项卡。清除任何现有请求以获得清晰的视图。
  3. 同时删除和交互:
    • 当普通用户在主题页面上(来自步骤 2)时,使用管理员/版主账户(来自步骤 1)删除该主题
    • 主题删除后,立即让普通用户尝试在已删除主题的页面上向上或向下滚动
  4. 观察:
    • 在普通用户的浏览器“网络”选项卡中,观察到持续的 GET 请求被发送到 https://discourse-url/t/xxxxx/posts.json?(其中 xxxxx 是已删除的主题 ID)。
    • 注意到所有这些请求都持续返回 403 Forbidden HTTP 状态码。
    • 应用程序没有显示任何表明主题已被删除的消息,也没有停止发送这些失败的滚动请求。

潜在后果

  • 在我的社区中,我们使用 Cloudflare 来防止网络攻击,此 bug 导致一些用户发送了过多的请求而被速率限制。
1 个赞

您当前的 Discourse 版本是多少?

最近有一个类似的报告,并已修复:

3 个赞