How to get 304 from jQuery Ajax instead of 200?
jquery
Solution
If You want to distinguish between them, use `success(data, textStatus, jqXHR)` event and read it from `jqXHR.status`
or access jqXHR other way:
var jqxhr = $.ajax(
...
statusCode: {
200: function() {
if(304 == jqxhr.status)
alert("not modified"); // does not fire
}
},
)
Proper way to handle 304 not modified in jQuery ajax
edit
additional `ajax()` setting:
ifModified:true, // Lets respond `304:notmodified`
but it breaks data reponse:
http://forum.jquery.com/topic/how-to-fix-browser-cache-and-notmodified-respond-for-json-jquery-ajax-ifmodified-true-break-on-data-respond
but You've used it and it still works differently :-/
Problem
My services returns a `304` but jQuery Ajax seems to convert it to a `200 OK`result. This is my request: ``` $.ajax({ url: '/api/items', type: 'GET', dataType: 'json', contentType: 'application/json', ifModified:true, cache: false, statusCode: { 304: function() { alert("not modified"); // does not fire } }, complete: function (xhr, status) { console.log(xhr.status); // 200 } } }); ``` With Fiddler I can see that the service returns `304` correctly. Why does jQuery convert it to a `200`?