简短解决方案:

简短解决方案:

(标题不错——这实际上就是错误所在,并且很可能是将来遇到此问题的人会搜索的内容)

使用的浏览器:Firefox 90.0.2(Ubuntu x86_64)

在 LeetCode 上点击Submit解答按钮之后,右下角弹出了如下红色提示:

在此处输入图片描述 “发生未知错误。请稍后重试,如果此问题仍然存在,请联系我们。”

这可能是什么原因造成的?我尝试启用所有 cookie,但没有任何变化。(以下为自我回答。)

答案1

简短解决方案:

设置network.http.sendRefererHeader为 2。

解释为什么该解决方案是这样的:

这里的核心问题是每次请求时发送的标头。只有在主域匹配时才Referer发送标头是可以的(来自的 referer 标头Referera.example.comb.example.com是允许的,但不能b.otherwebsite.com)。然而,在 Firefox(从 90.0.4 Linux x64 开始)中,有一个设置network.http.sendRefererHeader被设置为1(我将其默认为 2),该设置限制Referer仅在单击链接、按钮等时发送标头,而不管您设置的来源策略如何。

LeetCode 依赖于Referer向其子域发送的所有请求的标头,无论是针对图像、自定义 UI 组件还是 XHR 请求,都无关紧要。因此,当单击按钮时Submit,由于它是一个自定义 UI 组件(而不是 HTML 按钮),浏览器不会将其识别为表单按钮,也不会Referer随其发送标头。LeetCode 服务器认为这是一个机器人请求,或者是某人直接请求组件而没有在上一页,因此随后拒绝它。因此,将该配置设置为2

相关内容