The Body mixin of the Fetch API represents the body of the response/request, allowing you to declare what its content type is and how it should be handled.
Body is implemented by both Request and Response. This provides these objects with an associated body (a stream), a used flag (initially unset), and a MIME type (initially the empty byte sequence).
Properties
Body.bodyRead only- A simple getter used to expose a
ReadableStreamof the body contents. Body.bodyUsedRead only- A
Booleanthat indicates whether the body has been read.
Methods
Body.arrayBuffer()- Takes a
Responsestream and reads it to completion. It returns a promise that resolves with anArrayBuffer. Body.blob()- Takes a
Responsestream and reads it to completion. It returns a promise that resolves with aBlob. Body.formData()- Takes a
Responsestream and reads it to completion. It returns a promise that resolves with aFormDataobject. Body.json()- Takes a
Responsestream and reads it to completion. It returns a promise that resolves with the result of parsing the body text asJSON. Body.text()- Takes a
Responsestream and reads it to completion. It returns a promise that resolves with aUSVString(text). The response is always decoded using UTF-8.
Examples
The example below uses a simple fetch call to grab an image and display it in an <img> tag. You'll notice that since we are requesting an image, we need to run Body.blob() (Response implements body) to give the response its correct MIME type.
HTML Content
<img class="my-image" src="https://udn.realityripple.com/samples/46/29059a2b39.png">
JS Content
const myImage = document.querySelector('.my-image');
fetch('https://upload.wikimedia.org/wikipedia/commons/7/77/Delete_key1.jpg')
.then(res => res.blob())
.then(res => {
const objectURL = URL.createObjectURL(res);
myImage.src = objectURL;
});
Specifications
| Specification | Status | Comment |
|---|---|---|
| Fetch The definition of 'Body' in that specification. |
Living Standard |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Body | Chrome
Full support
42
| Edge Full support ≤18 | Firefox
Full support
39
| IE No support No | Opera
Full support
29
| Safari Full support 10 | WebView Android Full support 42 | Chrome Android Full support 42 | Firefox Android ? | Opera Android
Full support
29
| Safari iOS Full support 10 | Samsung Internet Android Full support 4.0 |
arrayBuffer | Chrome
Full support
42
| Edge Full support ≤18 | Firefox
Full support
39
| IE No support No | Opera
Full support
29
| Safari Full support 10 | WebView Android No support No | Chrome Android Full support 42 | Firefox Android No support No | Opera Android
Full support
29
| Safari iOS Full support Yes | Samsung Internet Android No support No |
blob | Chrome
Full support
42
| Edge Full support ≤18 | Firefox
Full support
39
| IE No support No | Opera
Full support
29
| Safari Full support 10 | WebView Android No support No | Chrome Android Full support 42 | Firefox Android No support No | Opera Android
Full support
29
| Safari iOS Full support 10 | Samsung Internet Android No support No |
body | Chrome Full support 52 | Edge Full support ≤18 | Firefox
Full support
65
| IE No support No | Opera Full support 39 | Safari Full support 10 | WebView Android Full support 52 | Chrome Android Full support 52 | Firefox Android
Full support
65
| Opera Android Full support 41 | Safari iOS Full support Yes | Samsung Internet Android Full support 6.0 |
bodyUsed | Chrome
Full support
42
| Edge Full support ≤18 | Firefox
Full support
39
| IE No support No | Opera
Full support
29
| Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android
Full support
29
| Safari iOS No support No | Samsung Internet Android No support No |
formData | Chrome Full support 60 | Edge Full support ≤79 | Firefox
Full support
39
| IE No support No | Opera Full support 47 | Safari Full support 10 | WebView Android Full support 60 | Chrome Android Full support 60 | Firefox Android No support No | Opera Android Full support 44 | Safari iOS Full support Yes | Samsung Internet Android Full support 8.0 |
json | Chrome
Full support
42
| Edge Full support ≤18 | Firefox
Full support
39
| IE No support No | Opera
Full support
29
| Safari Full support 10 | WebView Android No support No | Chrome Android Full support 42 | Firefox Android No support No | Opera Android
Full support
29
| Safari iOS Full support 10 | Samsung Internet Android No support No |
text | Chrome
Full support
42
| Edge Full support ≤18 | Firefox
Full support
39
| IE No support No | Opera
Full support
29
| Safari Full support 10 | WebView Android No support No | Chrome Android Full support 42 | Firefox Android No support No | Opera Android
Full support
29
| Safari iOS Full support 10 | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- User must explicitly enable this feature.
- User must explicitly enable this feature.
