Normalize IE XHR bug (status code 1223 to 204)

See http://bugs.jquery.com/ticket/1450
This commit is contained in:
Vojta Jina 2011-05-31 10:23:30 +02:00
parent 805e083c24
commit b2f5299e0e
2 changed files with 16 additions and 1 deletions

View file

@ -113,7 +113,9 @@ function Browser(window, document, body, XHR, $log) {
});
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
completeOutstandingRequest(callback, xhr.status || 200, xhr.responseText);
// normalize IE bug (http://bugs.jquery.com/ticket/1450)
var status = xhr.status == 1223 ? 204 : xhr.status || 200;
completeOutstandingRequest(callback, status, xhr.responseText);
}
};
xhr.send(post || '');

View file

@ -124,6 +124,19 @@ describe('browser', function(){
expect(response).toEqual('RESPONSE');
});
it('should normalize IE\'s 1223 status code into 204', function() {
var callback = jasmine.createSpy('XHR');
browser.xhr('GET', 'URL', 'POST', callback);
xhr.status = 1223;
xhr.readyState = 4;
xhr.onreadystatechange();
expect(callback).toHaveBeenCalled();
expect(callback.argsForCall[0][0]).toEqual(204);
});
it('should not set Content-type header for GET requests', function() {
browser.xhr('GET', 'URL', 'POST-DATA', function(c, r) {});