2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-05 16:42:32 +03:00

Allow custom HTTP status code error ranges (#308)

Adding support for custom HTTP status code error ranges
This commit is contained in:
Nick Uraltsev
2016-04-26 13:18:58 -07:00
committed by Matt Zabriskie
parent 093593cbca
commit fa9444e0ba
7 changed files with 169 additions and 17 deletions
+1 -7
View File
@@ -9,13 +9,7 @@ var url = require('url');
var zlib = require('zlib');
var pkg = require('./../../package.json');
var Buffer = require('buffer').Buffer;
// Resolve or reject the Promise based on the status
function settle(resolve, reject, response) {
(response.status >= 200 && response.status < 300 ?
resolve :
reject)(response);
}
var settle = require('../helpers/settle');
/*eslint consistent-return:0*/
module.exports = function httpAdapter(resolve, reject, config) {
+2 -5
View File
@@ -6,6 +6,7 @@ var parseHeaders = require('./../helpers/parseHeaders');
var transformData = require('./../helpers/transformData');
var isURLSameOrigin = require('./../helpers/isURLSameOrigin');
var btoa = (typeof window !== 'undefined' && window.btoa) || require('./../helpers/btoa');
var settle = require('../helpers/settle');
module.exports = function xhrAdapter(resolve, reject, config) {
var requestData = config.data;
@@ -73,11 +74,7 @@ module.exports = function xhrAdapter(resolve, reject, config) {
request: request
};
// Resolve or reject the Promise based on the status
((response.status >= 200 && response.status < 300) ||
(!('status' in request) && request.responseText) ?
resolve :
reject)(response);
settle(resolve, reject, response);
// Clean up request
request = null;
+5 -1
View File
@@ -58,5 +58,9 @@ module.exports = {
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1
maxContentLength: -1,
validateStatus: function validateStatus(status) {
return status >= 200 && status < 300;
}
};
+18
View File
@@ -0,0 +1,18 @@
'use strict';
/**
* Resolve or reject a Promise based on response status.
*
* @param {Function} resolve A function that resolves the promise.
* @param {Function} reject A function that rejects the promise.
* @param {object} response The response.
*/
module.exports = function settle(resolve, reject, response) {
var validateStatus = response.config.validateStatus;
// Note: status is not exposed by XDomainRequest
if (!response.status || !validateStatus || validateStatus(response.status)) {
resolve(response);
} else {
reject(response);
}
};