带有JSONP的jQuery.getJSON为不同的调用返回相同的数据

时间:2012-02-03 19:54:01

标签: javascript jquery ajax

我正在使用jQuery.getJSON()使用不同的参数连续三次点击同一个Web服务。然后我用我收到的数据绘制图表。虽然这个问题非常基础,但它与图表根本没有关系。当我在回调函数中获取数据时,它并不总是“正确”的数据。例如:

var URL1 = http://mysite.com/myAPI/metrics?type=pageloads&date=02022012&callback=?
var URL2 = http://mysite.com/myAPI/metrics?type=formsubmissions&date=02232012&callback=?
var URL3 = http://mysite.com/myAPI/metrics?type=uniqueusers&date=02022012&callback=?

var getDataAndDraw = function(metricURL, chartDiv) {
    $.getJSON(metricURL, function(data){
        console.log(data.metricName);

        // i do my charting here
    });
};

getDataAndDraw(URL1, 'pageloadsDiv');
getDataAndDraw(URL2, 'formsubmissionsDiv');
getDataAndDraw(URL3, 'uniqueuserDiv');

有时我会得到正确的3个图表,控制台会显示预期的指标名称。但有时我会得到一些相同的组合。例如......我将显示两次页面加载指标和一次唯一用户指标,控制台将显示页面加载的数据被返回两次并且唯一用户一次。

为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:3)

AJAX请求可能正在缓存。这段代码应该解决这个问题。

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});