The XMLHttpRequest.timeout property is an unsigned long representing the number of milliseconds a request can take before automatically being terminated. The default value is 0, which means there is no timeout. Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception. When a timeout happens, a timeout event is fired.

Note: You may not use a timeout for synchronous requests with an owning window.
Using a timeout with an asynchronous request 

In Internet Explorer, the timeout property may be set only after calling the open() method and before calling the send() method.


var xhr = new XMLHttpRequest();
xhr.open('GET', '/server', true);

xhr.timeout = 2000; // time in milliseconds

xhr.onload = function () {
  // Request finished. Do processing here.

xhr.ontimeout = function (e) {
  // XMLHttpRequest timed out. Do something here.



Specification Status Comment
XMLHttpRequest Living Standard WHATWG living standard

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
timeoutChrome Full support 29Edge Full support 12Firefox Full support 12IE Full support 8Opera Full support 17
Full support 17
No support 12 — 16
Safari Full support 6.1WebView Android Full support ≤37Chrome Android Full support 29Firefox Android Full support 14Opera Android Full support 18
Full support 18
No support 12 — 16
Safari iOS Full support 7Samsung Internet Android Full support 2.0


Full support  
Full support