jquery ajax 304
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, 我们是不是认识?"。