php jQuery AJAX 请求有时在Chrome上挂起

9rbhqvlz  于 2022-12-10  发布在  PHP
关注(0)|答案(2)|浏览(164)

我有一个jQuery AJAX 的问题,请求是待定有时。我不知道如何触发这个问题,有时待定,有时确定。

在jquery中使用$. AJAX 请求。有人知道如何解决这个问题吗?我不得不给予响应JSON头并使用https。

  • 谢谢-谢谢
wb1gzix0

wb1gzix01#

“挂起”意味着您的客户端仍在等待服务器的响应。这不是客户端代码的问题-而是您的连接甚至服务器端代码的问题。干杯!

ffx8fchx

ffx8fchx2#

在这个问题发布近四年后,我遇到了同样的问题,除了我使用htmx. AJAX ()发出AJAX请求(我不确定,这可能只是在幕后使用jQuery AJAX)。
在我的情况下,我100%肯定问题不是我的连接或服务器端代码,因为投票的答案表明,有几个原因。

  • 这是在本地主机上开发时发生的,因此没有连接问题
  • 它在Edge和Firefox上都能完美运行(在Chrome上也有大约四分之一的时间可以运行,但没有明确表示何时可以运行,何时不可以运行)。
  • 后端的调试日志表明响应被快速、正确地发送出去
  • 响应只有一个字符,所以我知道它不是太大。(我也试着让它更大,以防万一它太小,但这也不起作用。)
  • Chrome Dev Tools能够显示准确的内容长度和所有正确的响应头,因此它显然已经收到了响应,但状态无限期地挂起,无法显示响应正文。
  • 这个请求只有在通过后退按钮到达某个页面时才会发生,它和对favicon的请求是出现在开发工具的网络选项卡中的仅有的两个请求,所以我不 * 认为 * 这是Chrome的TCP连接限制的问题,但我可能是错的。

有相当多的StackOverflow问题和Chromium bug报告关于这个问题的不同版本,至少可以追溯到2015年。我所看到的似乎没有一个是明确的可重复的或有一个具体的解决方案,但它肯定像是有 * 东西 * 在Chrome中的某个地方导致了这个问题。
在我的例子中,在请求之前添加半秒超时似乎已经解决了这个问题。这可能对其他有这个问题的人有效,也可能不有效(我看到过去对其他人有效的建议对我不起作用),但是如果在您的用例中是合理的,值得一试。

相关问题