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:
committed by
Matt Zabriskie
parent
093593cbca
commit
fa9444e0ba
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user