diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 84a89be3f3aeb0c65e62aca0e4d8da0d05c4b6d4..bcb11ea8d75729a18a74d52a4f5b240d6b30a606 100644 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -88,6 +88,11 @@ module.exports = function httpAdapter(resolve, reject, config) { reject(err); }); + // Handle request timeout + req.setTimeout(config.timeout, function () { + req.abort(); + }); + // Send the request req.end(data); }; diff --git a/lib/adapters/xhr.js b/lib/adapters/xhr.js index dc5c6d0327e85c9a15c5117b80824e2105be2c34..73886a01474359b9b3736325144552190e6ff966 100644 --- a/lib/adapters/xhr.js +++ b/lib/adapters/xhr.js @@ -36,6 +36,9 @@ module.exports = function xhrAdapter(resolve, reject, config) { var request = new (XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP'); request.open(config.method.toUpperCase(), buildUrl(config.url, config.params), true); + // Set the request timeout in MS + request.timeout = config.timeout; + // Listen for ready state request.onreadystatechange = function () { if (request && request.readyState === 4) { diff --git a/lib/defaults.js b/lib/defaults.js index 94e9d44d16fe75d2d551af540119d5854b3c45db..ba2ca8ec3981d46f177e25f11a3c71aa46adb8cf 100644 --- a/lib/defaults.js +++ b/lib/defaults.js @@ -55,6 +55,8 @@ module.exports = { put: utils.merge(DEFAULT_CONTENT_TYPE) }, + timeout: 0, + xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN' };