为什么在_jax请求中将“_ = 1389258551926”作为查询字符串参数发送?
我正在使用JQuery Ajax向我的动作类发送请求data: {campaignId: campaignId}
但是_=1389258551926
也作为数据发送。
我的ajax请求function是:
$('#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更改并避免接收页面的缓存版本。
它在文档中描述:
cache(默认值:true,false,对于dataType’script’和’jsonp’)
Type:Boolean如果设置为false,它将强制浏览器不缓存请求的页面。 注意:将缓存设置为false只能与HEAD和GET请求一起正常工作。 它的工作原理是将“_ = {timestamp}”附加到GET参数。 其他类型的请求不需要该参数,但在IE8中,对已经由GET请求的URL进行POST时除外。