【问题标题】:Why my JQuery ajax functions waits indefinitely为什么我的 JQuery ajax 函数无限期地等待
【发布时间】:2013-09-28 10:50:14
【问题描述】:

我有一个 jQuery ajax 函数调用来加载数据。当我在 Chrome 中进行测试时,有时它不会调用请求完成功能,有时它会起作用。请告诉我可能是什么原因。

var request = $.ajax({
    url: data_url,
    type: 'post',
    data: ""
});
request.done(function(result)
{
    console.log("Done");
}

网址和一切都是正确的,因为它有时会在我单击刷新时起作用。当我从浏览器发送流时,是否需要传递一些结束代码?

在服务器端,我使用 PHP 回显函数来发送编码的 JSON。

【问题讨论】:

  • p/s:如果您只是从服务器获取数据,而不是在另一端修改任何内容,请使用 GET :)
  • 也使用 fail() 或使用 always() 并检查错误信息
  • 谢谢@Terry,当我更改为 GET 时它可以工作。

标签: jquery ajax


【解决方案1】:

您的代码似乎没有错。我有时遇到的一个问题是 Web 浏览器限制了对服务器的并发请求数。因此,如果您在服务器代码中设置了断点,您很容易在调试会话期间遇到您描述的问题。另见How many concurrent AJAX (XmlHttpRequest) requests are allowed in popular browsers?

【讨论】:

  • 感谢您的回复,但这是唯一在窗口加载时执行的函数。没有其他 AJAX 调用。
【解决方案2】:

您的后端挂起。刷新时有时会起作用的原因是浏览器在刷新时取消了请求,导致 xhr 完成。

您可以从命令行尝试使用 curl 以确保:

$ curl -iX POST --data "" data_url

【讨论】:

  • 它是本地服务器,如果我直接在浏览器中输入URL,则立即得到响应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2018-08-22
  • 2015-07-17
相关资源
最近更新 更多