Skip to content

Commit

Permalink
Normalize response status for HTTP 204 in MSIE
Browse files Browse the repository at this point in the history
  • Loading branch information
mzabriskie committed Jan 22, 2016
1 parent c73389e commit d31ebc4
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 3 deletions.
10 changes: 7 additions & 3 deletions lib/adapters/xhr.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,16 @@ module.exports = function xhrAdapter(resolve, reject, config) {
responseHeaders,
config.transformResponse
),
status: request.status,
statusText: request.statusText,
// IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)
status: request.status === 1223 ? 204 : request.status,
statusText: request.status === 1223 ? 'No Content' : request.statusText,
headers: responseHeaders,
config: config
};
((request.status >= 200 && request.status < 300) || (request.status === 1223) || (!('status' in request) && request.responseText) ?

// Resolve or reject the Promise based on the status
((response.status >= 200 && response.status < 300) ||
(!('status' in request) && response.responseText) ?
resolve :
reject)(response);

Expand Down
26 changes: 26 additions & 0 deletions test/specs/requests.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,32 @@ describe('requests', function () {
}, 0);
});

// https://github.com/mzabriskie/axios/issues/201
it('should fix IE no content error', function (done) {
var request, response;

axios({
url: '/foo'
}).then(function (res) {
response = res
});

setTimeout(function () {
request = jasmine.Ajax.requests.mostRecent();

request.respondWith({
status: 1223,
statusText: 'Unknown'
});

setTimeout(function () {
expect(response.status).toEqual(204);
expect(response.statusText).toEqual('No Content');
done();
}, 0);
}, 0);
});

it('should allow overriding Content-Type header case-insensitive', function (done) {
var request, response;
var contentType = 'application/vnd.myapp.type+json';
Expand Down

0 comments on commit d31ebc4

Please sign in to comment.