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://wikipedia.org/static/images/project-logos/frwiki-1.5x.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 |
| FetchThe 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.
Update compatibility data on GitHub
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Body
|
Chrome Full support 42 Full support 42 Full support 41 Disabled' From version 41: this feature is behind the |
Edge
Full support ≤18 |
Firefox Full support 39 Full support 39 Full support 34 Disabled' From version 34: this feature is behind the |
IE
No support No |
Opera Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari
Full support 10.1 |
WebView Android
Full support 42 |
Chrome Android
Full support 42 |
Firefox Android
? |
Opera Android Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 4.0 |
|
Chrome Full support 42 Full support 42 Full support 41 Disabled' From version 41: this feature is behind the |
Edge
Full support ≤18 |
Firefox Full support 39 Full support 39 Full support 34 Disabled' From version 34: this feature is behind the |
IE
No support No |
Opera Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari
Full support 10.1 |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
No support No |
Opera Android Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 4.0 | |
|
Chrome Full support 42 Full support 42 Full support 41 Disabled' From version 41: this feature is behind the |
Edge
Full support ≤18 |
Firefox Full support 39 Full support 39 Full support 34 Disabled' From version 34: this feature is behind the |
IE
No support No |
Opera Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari
Full support 10.1 |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
No support No |
Opera Android Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 4.0 | |
| Chrome
Full support 52 |
Edge
Full support ≤18 |
Firefox Full support 65 Full support 65 Full support 57 Disabled' From version 57: this feature is behind the |
IE
No support No |
Opera
Full support 39 |
Safari
Full support 11.1 |
WebView Android
Full support 52 |
Chrome Android
Full support 52 |
Firefox Android Full support 65 Full support 65 Full support 57 Disabled' From version 57: this feature is behind the |
Opera Android
Full support 41 |
Safari iOS
Full support 11.3 |
Samsung Internet Android
Full support 6.0 | |
|
Chrome Full support 42 Full support 42 Full support 41 Disabled' From version 41: this feature is behind the |
Edge
Full support ≤18 |
Firefox Full support 39 Full support 39 Full support 34 Disabled' From version 34: this feature is behind the |
IE
No support No |
Opera Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari
Full support 10.1 |
WebView Android
No support No |
Chrome Android
No support No |
Firefox Android
No support No |
Opera Android Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari iOS
Full support 10.3 |
Samsung Internet Android
No support No | |
| Chrome
Full support 60 |
Edge
Full support ≤79 |
Firefox Full support 39 Full support 39 Full support 34 Disabled' From version 34: this feature is behind the |
IE
No support No |
Opera
Full support 47 |
Safari Partial support 10.1 Partial support 10.1 Notes' From Safari 10.1, the method exists but always rejects with |
WebView Android
Full support 60 |
Chrome Android
Full support 60 |
Firefox Android
No support No |
Opera Android
Full support 44 |
Safari iOS Partial support 10.3 Partial support 10.3 Notes' From Safari for iOS 10.3, the method exists but always rejects with |
Samsung Internet Android
Full support 8.0 | |
|
Chrome Full support 42 Full support 42 Full support 41 Disabled' From version 41: this feature is behind the |
Edge
Full support ≤18 |
Firefox Full support 39 Full support 39 Full support 34 Disabled' From version 34: this feature is behind the |
IE
No support No |
Opera Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari
Full support 10.1 |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
No support No |
Opera Android Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 4.0 | |
|
Chrome Full support 42 Full support 42 Full support 41 Disabled' From version 41: this feature is behind the |
Edge
Full support ≤18 |
Firefox Full support 39 Full support 39 Full support 34 Disabled' From version 34: this feature is behind the |
IE
No support No |
Opera Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari
Full support 10.1 |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
No support No |
Opera Android Full support 29 Full support 29 Full support 28 Disabled' From version 28: this feature is behind the |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 4.0 |
Legend
- Full support
- Full support
- Partial support
- Partial 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.
- See implementation notes.'
- See implementation notes.
- User must explicitly enable this feature.'
- User must explicitly enable this feature.
See also
Body by Mozilla Contributors is licensed under CC-BY-SA 2.5.