$ .getJSON()返回旧(缓存?)数据

时间:2014-11-23 14:06:23

标签: jquery request

我使用以下代码执行简单的ajax调用,但它会不断记录reportData.report的旧值(即,它只运行一次,然后似乎永远不会更新)。

var noCache = new Date().getTime();
$.getJSON(url, {"noCache": noCache, cache: false}, function(reportData) {
    console.log(reportData.report);

但是,在控制台中记录的阵列与我在Firebug中可以看到的对GET请求的响应不同。我尝试使用$ .ajax函数执行此操作,以及禁用缓存(还添加了一个随机参数以确保其未缓存)。事实上,我确实在Firebug中看到了正确的(更新的)响应,这让我觉得这不是问题所在。

为什么一直记录旧数据?

编辑:我使用最新版本的Firefox来测试是否有任何区别

EDIT2:我认为这可能与我回来的UUID有关(例如:23766330297548822)。难道这些在JavaScript中被错误地舍入了吗?如何从JSON数据中正确检索此整数(可能是一个字符串?)?

1 个答案:

答案 0 :(得分:0)

Javascript中的大数字不够准确,所以你不应该依赖它们。试试这个:

var a = 23766330297548822;
var b = 23766330297548824;
console.log(a === b); // Returns true :)

它会说ab相等,但事实并非如此。

尝试使用字符串或使用像javascript-bignum这样的bigint库。