为什么在_jax请求中将“_ = 1389258551926”作为查询字符串参数发送?

时间:2014-01-09 09:22:17

标签: javascript jquery ajax

我正在使用JQuery Ajax向我的动作类发送请求data: {campaignId: campaignId},但_=1389258551926也作为数据发送。

我的ajax请求功能是:

$('#submit').click(function() {
    var campaignId = $('#campaign').val();
    alert("Ajax request ; Camp : " + campaignId);
    $.ajax({
        type: "get",
        url: "getCampData",
        data: {campaignId: campaignId},
        dataType: "json"
    }).done(function(data) {
        alert("Camp List : " + data.campList);
});

查询字符串参数:

campaignId=Test&_=1389258551927

为什么将这个额外参数作为数据发送?

1 个答案:

答案 0 :(得分:13)

此参数是时间戳。您可以通过

看到它与控制台中的内容完全相同
Date.now()

这样做是为了确保URL更改并避免接收页面的缓存版本。

the documentation中描述:

  

缓存(默认值:true,false,对于dataType'script'和'jsonp')

     

类型:Boolean如果设置为false,则会强制请求的页面不是   由浏览器缓存。注意:将缓存设置为false仅适用   正确使用HEAD和GET请求。它通过附加工作   GET参数的“_ = {timestamp}”。不需要该参数   其他类型的请求,除了在IE8中对URL进行POST时   这已经被GET要求了。