Fixed the handling of .status == 304 in Opera (it always returns 0). Also silently "pass" in Opera 9.6 (which is unable to send the correct headers with setRequestHeader). Follow-up to bug #4764.

This commit is contained in:
John Resig 2009-07-14 21:13:23 +00:00
parent 89dc1e0143
commit c3c94823f2
4 changed files with 30 additions and 8 deletions

View file

@ -455,7 +455,8 @@ jQuery.extend({
try {
// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
return !xhr.status && location.protocol == "file:" ||
( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;
// Opera returns 0 when status is 304
( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223 || xhr.status == 0;
} catch(e){}
return false;
},
@ -471,7 +472,8 @@ jQuery.extend({
if (etag)
jQuery.etag[url] = etag;
return xhr.status == 304;
// Opera returns 0 when status is 304
return xhr.status == 304 || xhr.status == 0;
},
httpData: function( xhr, type, s ) {