mirror of
https://github.com/tenrok/axios.git
synced 2026-06-23 20:40:40 +03:00
Normalize response status for HTTP 204 in MSIE
This commit is contained in:
+7
-3
@@ -49,12 +49,16 @@ module.exports = function xhrAdapter(resolve, reject, config) {
|
|||||||
responseHeaders,
|
responseHeaders,
|
||||||
config.transformResponse
|
config.transformResponse
|
||||||
),
|
),
|
||||||
status: request.status,
|
// IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)
|
||||||
statusText: request.statusText,
|
status: request.status === 1223 ? 204 : request.status,
|
||||||
|
statusText: request.status === 1223 ? 'No Content' : request.statusText,
|
||||||
headers: responseHeaders,
|
headers: responseHeaders,
|
||||||
config: config
|
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 :
|
resolve :
|
||||||
reject)(response);
|
reject)(response);
|
||||||
|
|
||||||
|
|||||||
@@ -144,6 +144,32 @@ describe('requests', function () {
|
|||||||
}, 0);
|
}, 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) {
|
it('should allow overriding Content-Type header case-insensitive', function (done) {
|
||||||
var request, response;
|
var request, response;
|
||||||
var contentType = 'application/vnd.myapp.type+json';
|
var contentType = 'application/vnd.myapp.type+json';
|
||||||
|
|||||||
Reference in New Issue
Block a user