我正在使用JQuery Ajax将请求发送到动作类,data: {campaignId:campaignId}但_=1389258551926也将其作为数据发送。
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
为什么这个额外的参数作为数据发送?
此参数是一个时间戳。您会发现它与您在控制台中得到的东西很奇怪
Date.now()
这样做是为了确保URL更改并避免接收页面的缓存版本。
在文档中对其进行了描述:
缓存(默认:true,对于dataType’script’和’jsonp’为false) 类型:布尔值如果设置为false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为false只能与HEAD和GET请求一起正常使用。它通过在GET参数后面附加“ _ = {timestamp}”来工作。对于其他类型的请求,不需要此参数,但在IE8中,当对GET已经请求的URL进行POST时,则不需要该参数。
缓存(默认:true,对于dataType’script’和’jsonp’为false)
类型:布尔值如果设置为false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为false只能与HEAD和GET请求一起正常使用。它通过在GET参数后面附加“ _ = {timestamp}”来工作。对于其他类型的请求,不需要此参数,但在IE8中,当对GET已经请求的URL进行POST时,则不需要该参数。