我有这段代码:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(document).ready(function(){
var j = jQuery.noConflict();
j(document).ready(function() {
setInterval(function(i) {
var divs = document.getElementsByClassName('post');
var lastPostID = parseInt( divs[0].getAttribute('data-id') );
var myurl = "/post/"+parseInt(lastPostID);
console.log(myurl, "myurl");
j.ajax({
url: myurl,
cache: false,
success: function(html){
j("#temp").html(html)
j("#temp").prependTo("#allPosts");
}
})
}, 5000)
});
});
</script>
</head>
<body>
<div id="temp" style="display: none;"></div>
<div id="allPosts">
<div class='post' data-id='100'>...</div>
<div class='post' data-id='20'>...</div>
<div class='post' data-id='1'>...</div>
</div>
</body>
</html>
我每5秒就会在控制台看到:
/post/100 myurl jQuery_div_update.html:12
OPTIONS file:///post/100?_=1392319636208
第一行(console.log...
)是网址。
但jQuery使用的网址(url: myurl,...
)最后有“?_ = 1392319636208 ”。为什么那里有随机串?我该如何删除它?
答案 0 :(得分:2)
在您的AJAX请求中,您已将选项cache
定义为:
cache: false
来自jQuery文档:
缓存(默认:true,false,对于dataType'script'和'jsonp')
类型:布尔值
如果设置为false,则会强制请求的页面不被删除 由浏览器缓存。注意:将缓存设置为false仅适用 正确使用HEAD和GET请求。它通过附加工作 GET参数的“_ = {timestamp}”。不需要该参数 其他类型的请求,除了在IE8中对URL进行POST时 这已经被GET要求了。
以下是jQuery文档的链接:https://api.jquery.com/jQuery.ajax/
答案 1 :(得分:1)
这是您的ajax选项中cache: false
的结果。请参阅jQuery.ajax()之外的选项缓存。