2

我有一个 AJAX 请求,如下所示:

$.get('api/indicator/status_graph/'+self.indicator.get('id'), function(data) {
    self.actuals_graph(data);
    self.graphLoaded(true);
    self.graphError(false);
}).error(function(data) {
    self.graphError(true);
});

老实说,这是一个童话般的简单请求,并且在页面的另一个地方重复出现。我遇到的问题是在调用 get 函数后立即调用成功回调;Chrome 的网络面板显示根本没有向服务器发出请求。在其他地方调用的几乎相同的一段代码可以正常工作,并且由于调用它们的方式或时间没有区别,老实说,我无法弄清楚发生了什么。

4

3 回答 3

1

我最近遇到了同样的问题:触发了成功回调,响应数据是一个空字符串,开发者工具中不会显示任何请求,也没有请求会到达网络服务器。和你一样,我认为这不是缓存问题,因为没有任何请求的证据(即使是缓存的)出现在任何地方。

但是,我尝试将调用的cache参数设置为并在原始服务器回复上设置各种无缓存标头(在 Django 中,使用@never_cache装饰器),问题似乎已解决。两天过去了,这个问题再也没有出现过。ajax()false

于 2013-10-04T15:13:48.873 回答
1

请求/响应很可能被缓存了。查看您的调试器进行验证。

于 2013-07-23T15:09:02.140 回答
0

你能运行类似于 Fiddler 的东西来查看你的请求是否确实被发送了吗?另外,您说成功回调在调用 GET 后立即触发 - 返回到您的成功回调的数据是否合适?

一种可能性是 chrome 正在预先缓存您的请求。您确实提到了另一段代码进行了几乎相同的调用-实际上是否相同?还是关闭?

于 2013-07-23T15:15:54.337 回答