ajax返回304,jquery $ajax GET请求在IE浏览器兼容中遇到的304 cache请求的经验分享

在最代码上线后,印象最深的2个bug:

1.用户提醒数字明明已经查看了但是一直还在提示。

2.用户下载代码已经登录了但是一直提示尚未登录。

经过和牛牛们远程协助发现是因为在IE内核的浏览器下,http协议中浏览器端中对相同请求有cache的机制,会返回304 Not Modified提示浏览器可以继续用本地cache而忽略服务端返回的数据。

在jquery的$ajax请求中增加:cache:false参数即可:

例如下载代码时ajax调用是否下载代码的逻辑如下:$(".download").click(function() {

var id=$(this).attr("content_id");

var niubi=$(this).attr("niubi");

$.ajax({

url : "/code/"+id+"/is_downloaded.htm",

type : 'GET',

dataType : 'json',

cache:false,

success : function(json) {

if(json.error==""){

if(json.is_downloaded=="0"){

if (!confirm("确认下载代码么?下载将扣除你"+niubi+"个牛币")) {

return;

}

}

window.location = "/code/" + id + "/download.htm";

}else{

alert(json.error);

}

}

});

});

相信好多牛牛都会遇到诸如此类的诡异问题,本地环境调试都正常,但线上却出现问题了,最重要的还是得多提高这种问题排查能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值