jquery ajax 304

笔记2024-04-182 人已阅来源:网络

jQuery AJAX 304状态码简述:

AJAX是通过XMLHttpRequest对象请求后台接口获取数据,如果是要获取的页面数据与先前请求到的数据完全一致(比如重复请求,或者缓存中已有该数据),服务器返回304状态码,代表资源未改变,并且不返回任何数据,浏览器直接取用本地缓存数据。这个状态码仅仅代表本次请求的数据跟上一次请求的数据是相同的,而不代表请求失败。

jQuery.ajax({
type: "GET",
url: "/your/api",
cache: true,
success: function(data){
// Handle success here
},
error: function(xhr){
if(xhr.status==304){
alert("Not Modified");
}
// Handle error here
}
});

需要注意的是,对于HTTP GET请求,如果请求返回200状态码,那么浏览器会把结果缓存起来,下次请求同样的URL会优先返回本地缓存的结果,除非你显式告诉jQuery不要缓存这个请求,可以通过设置cache:false来达成此目的。同时,建议使用"head"请求,这种请求只获取头部信息,通俗地讲,就是: "Hi, server, 我们是不是认识?"。