Javascript 为什么缓存:false在jqueryajax中不起作用
在我的示例中,我正在使用AJAX。在本文中,我使用了Javascript 为什么缓存:false在jqueryajax中不起作用,javascript,jquery,caching,Javascript,Jquery,Caching,在我的示例中,我正在使用AJAX。在本文中,我使用了cache:false属性。 它总是触发请求(我签入了网络选项卡)。为什么请求没有被缓存?这是我的密码 $(函数(){ $('#btn')。单击(函数(){ 警报('---') $.ajax({ url:“https://api.github.com/events", 数据:{ 身份证号码:123 }, cache:false, 键入:“获取”, 数据类型:“json”, }).done(函数(json){ $(“”).text(json.t
cache:false
属性。
它总是触发请求(我签入了网络选项卡)。为什么请求没有被缓存?这是我的密码
$(函数(){
$('#btn')。单击(函数(){
警报('---')
$.ajax({
url:“https://api.github.com/events",
数据:{
身份证号码:123
},
cache:false,
键入:“获取”,
数据类型:“json”,
}).done(函数(json){
$(“”).text(json.title).appendTo(“body”);
$(“”).html(json.html).appendTo(“body”);
}).失败(功能(xhr、状态、错误抛出){
警报(“抱歉,出现问题!”);
log(“错误:+errorshown”);
控制台日志(“状态:+状态”);
console.dir(xhr);
}).始终(功能(xhr、状态){
警报(“请求已完成!”);
});
})
})
根据,如果缓存设置为false,它将强制浏览器不缓存请求的页面
我想您应该将其更改为
true
好吧,缓存:false
打开缓存,将其设置为true
将打开它?您关闭了缓存。。。这就是为什么缓存被关闭的原因。你应该关闭它。看起来jQuery只是通过在内部添加一个时间戳来实现这一点。它总是会显示一个请求,但在控制台的网络选项卡中,它应该显示“来自缓存”或类似的内容。sill network showing new request..请单击按钮并检查my Chrome中的网络选项卡,第二个请求显示状态代码:200 OK(从缓存中)
(Chrome/53)
$(function(){
$('#btn').click(function(){
alert('----')
$.ajax({
url: "https://api.github.com/events",
data: {
id: 123
},
cache: false,
type: "GET",
dataType : "json",
}).done(function(json) {
$("<h1>").text(json.title).appendTo("body");
$("<div class=\"content\">").html(json.html).appendTo("body");
}).fail(function(xhr, status, errorThrown) {
alert("Sorry, there was a problem!");
console.log("Error: " + errorThrown);
console.log("Status: " + status);
console.dir(xhr);
}).always(function(xhr, status) {
alert("The request is complete!");
});
})
})