coderef

XMLHttpRequestBaseline · Widely available

The XMLHttpRequest API makes HTTP requests. It's the predecessor to fetch(). Also known as XHR.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Jul 29, 2015. Widely available since Jan 29, 2018.

Browser support

DesktopChrome
1+Supportedsince Dec 11, 2008
Current: 155
Edge
12+Supportedsince Jul 29, 2015
Current: 154
Firefox
1+Supportedsince Nov 9, 2004
Current: 157
Safari
1–2Not supported
3+Supportedsince Oct 26, 2007
Current: 27
MobileChrome Android
18+Supportedsince Jun 27, 2012
Current: 155
Firefox Android
4+Supportedsince Mar 29, 2011
Current: 157
Safari iOS
1+Supportedsince Jun 29, 2007
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: FormData.

Feature detection

JS · check before using
if ("FormData" in globalThis) {
  // FormData is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (72). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
FormData512451845
FormData.@@iterator50184411.1504411.3
FormData.FormData512451845
FormData.FormData.submitter11211211116.411211116.4
FormData.append512451845
FormData.append.filename_parameter161222618226
FormData.delete50183911.1503911.3
FormData.entries50184411.1504411.3
FormData.forEach50184711.1504711.3
FormData.get50183911.1503911.3
FormData.getAll50183911.1503911.3
FormData.has50183911.1503911.3
FormData.keys50184411.1504411.3
FormData.set50183911.1503911.3
FormData.values50184411.1504411.3
FormData.worker_support50793913.1503913.4
ProgressEvent1123.53.11842
ProgressEvent.ProgressEvent161418618186
ProgressEvent.ProgressEvent.loaded_total_options_accept_double136136138✕136138✕
ProgressEvent.lengthComputable1123.53.11842
Show 52 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
ProgressEvent.loaded1123.53.11842
ProgressEvent.total1123.53.11842
ProgressEvent.worker_support✕✕5410✕5410
XMLHttpRequest11211.21841
XMLHttpRequest.XMLHttpRequest112131841
XMLHttpRequest.abort11211.21841
XMLHttpRequest.abort_event1123.51.31841
XMLHttpRequest.authorization_removed_cross_origin✕✕11116.1✕11116.1
XMLHttpRequest.error_event11211.31841
XMLHttpRequest.getAllResponseHeaders11211.21841
XMLHttpRequest.getAllResponseHeaders.header_names_lowercase60796411606411
XMLHttpRequest.getResponseHeader11211.21841
XMLHttpRequest.load_event11211.31841
XMLHttpRequest.loadend_event1812541853
XMLHttpRequest.loadstart_event1123.51.31841
XMLHttpRequest.open11211.21841
XMLHttpRequest.overrideMimeType11211.21841
XMLHttpRequest.progress_event112131841
XMLHttpRequest.readyState11211.21841
XMLHttpRequest.readystatechange_event11211.21841
XMLHttpRequest.response91265.11865
XMLHttpRequest.responseText11211.21841
XMLHttpRequest.responseType311265.131505
XMLHttpRequest.responseType.arraybuffer_value311265.131505
XMLHttpRequest.responseType.blob_value311265.131505
XMLHttpRequest.responseType.document_value311211731507
XMLHttpRequest.responseType.json_value317910731507
XMLHttpRequest.responseURL371432837328
XMLHttpRequest.responseXML112131841
XMLHttpRequest.send11211.21841
XMLHttpRequest.send.body_ArrayBufferView_type221220725207
XMLHttpRequest.send.body_ArrayBuffer_type912961896
XMLHttpRequest.send.body_Blob_type2212262546
XMLHttpRequest.send.body_FormData_type612261846
XMLHttpRequest.send.body_URLSearchParams_type59174415594415
XMLHttpRequest.setRequestHeader11211.21841
XMLHttpRequest.status11211.21841
XMLHttpRequest.statusText11211.21841
XMLHttpRequest.timeout291212729147
XMLHttpRequest.timeout_event291212729147
XMLHttpRequest.upload2123.541843
XMLHttpRequest.withCredentials3123.541843.2
XMLHttpRequest.worker_support4123.541845
XMLHttpRequestEventTarget112111841
XMLHttpRequestUpload2123.541843
XMLHttpRequestUpload.abort_event2123.541843
XMLHttpRequestUpload.error_event2123.541843
XMLHttpRequestUpload.load_event2123.541843
XMLHttpRequestUpload.loadend_event1812541853
XMLHttpRequestUpload.loadstart_event2123.541843
XMLHttpRequestUpload.progress_event2123.541843
XMLHttpRequestUpload.timeout_event291212729147