# 快速搜索有时会对每个已输入的字符发出请求，导致403错误

**URL:** https://meta.discourse.org/t/quick-search-make-requests-for-each-typed-character-in-some-cases-causing-403-errors/341582
**Category:** Bug
**Tags:** search
**Created:** [2024年十二月10日 12:04 UTC](https://meta.discourse.org/t/quick-search-make-requests-for-each-typed-character-in-some-cases-causing-403-errors/341582 "2024-12-10T12:04:21Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2024年十二月10日 12:04 UTC](https://meta.discourse.org/t/quick-search-make-requests-for-each-typed-character-in-some-cases-causing-403-errors/341582/1 "2024-12-10T12:04:21Z")

</div>

重现步骤：

1. 在某个类别中打开快速搜索输入框
2. 点击“在此类别中”选项
3. 输入几个字母
4. 每输入一个字符就会执行一次搜索查询，没有等待时间，导致 403 错误

当未注册时似乎更容易发生这种情况，可能是因为不同的速率限制。

![search rate limit bug](https://global.discourse-cdn.com/meta/original/4X/b/f/e/bfe40a19113f3345e54086440c32aadb597a5895.gif)

备注：如果手动输入 #categoryname 或在删除搜索查询以执行另一次搜索后，则不会发生这种情况。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2025年三月20日 19:04 UTC](https://meta.discourse.org/t/quick-search-make-requests-for-each-typed-character-in-some-cases-causing-403-errors/341582/3 "2025-03-20T19:04:54Z")

</div>

错误仍然存在，我在网络选项卡中看到了所有请求，但有一段时间没有遇到错误消息了。是否为用户增加了每秒最大请求数？

另外，值得注意的是，虽然此错误发生在 [meta.discourse.org](http://meta.discourse.org) 和 [try.discourse.org](http://try.discourse.org) 上，但并未发生在我的实例上。

也许这与某些设置有关？

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2025年三月23日 22:50 UTC](https://meta.discourse.org/t/quick-search-make-requests-for-each-typed-character-in-some-cases-causing-403-errors/341582/4 "2025-03-23T22:50:45Z")

</div>

将把调查列为中等优先事项，因为这有可能不必要地带来过多流量。

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [2025年三月25日 13:34 UTC](https://meta.discourse.org/t/quick-search-make-requests-for-each-typed-character-in-some-cases-causing-403-errors/341582/6 "2025-03-25T13:34:37Z")

</div>

> [@Canapin](#):
>
> 每输入一个字符都会执行一次搜索查询，且无需等待

这取决于输入速度。如果你打字足够快，就不会为每次按键都发送请求。该组件会对请求发送进行防抖处理，间隔为 400 毫秒；如果用户的输入速度低于这个阈值（即输入间隔超过 400 毫秒），则不会发送请求。在 macOS 上的 Safari、Firefox 和 Chrome 浏览器中测试，效果均良好。

你可以将此作为证明：

![CleanShot 2025-03-25 at 09.33.00@2x](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/6/7/e675a2fee65568e130d7da5a523b9029a4fa31fb_2_690x30.png)

在输入 “#Customization > Theme component data” 和 “#Customization > Theme component data expl” 之间，仅发送了两个请求，也就是说中间的字符没有触发任何请求。
