diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 84a89be..bcb11ea 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 dc5c6d0..73886a0 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 94e9d44..ba2ca8e 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' };