Request: formData() method

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨April 2021⁩.

Note: This feature is available in Web Workers.

The formData() method of the Request interface reads the request body and returns it as a promise that resolves with a FormData object.

Syntax

js
formData()

Parameters

None.

Return value

A Promise that resolves with a FormData object.

Exceptions

TypeError

Thrown for one of the following reasons:

  • The request body is disturbed or locked.
  • There was an error decoding the body content (for example, because the Content-Encoding header is incorrect).
  • The MIME type of the body cannot be determined from the Content-Type headers included in the request, or is not application/x-www-form-urlencoded or multipart/form-data.
  • The body cannot be parsed as a FormData object.

Examples

js
const formData = new FormData();
const fileField = document.querySelector('input[type="file"]');

formData.append("username", "abc123");
formData.append("avatar", fileField.files[0]);

const request = new Request("/myEndpoint", {
  method: "POST",
  body: formData,
});

request.formData().then((data) => {
  // do something with the formdata sent in the request
});

Specifications

Specification
Fetch
# ref-for-dom-body-formdata①

Browser compatibility

See also