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).
Body.body
Read only
ReadableStream
of the body contents.Body.bodyUsed
Read only
Boolean
that indicates whether the body has been read.Body.arrayBuffer()
Response
stream and reads it to completion. It returns a promise that resolves with an ArrayBuffer
.Body.blob()
Response
stream and reads it to completion. It returns a promise that resolves with a Blob
.Body.formData()
Response
stream and reads it to completion. It returns a promise that resolves with a FormData
object.Body.json()
Response
stream and reads it to completion. It returns a promise that resolves with the result of parsing the body text as JSON
.Body.text()
Response
stream and reads it to completion. It returns a promise that resolves with a USVString
(text). The response is always decoded using UTF-8.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.
<img class="my-image" src="https://wikipedia.org/static/images/project-logos/frwiki-1.5x.png">
var myImage = document.querySelector('.my-image'); fetch('https://upload.wikimedia.org/wikipedia/commons/7/77/Delete_key1.jpg') .then(res => res.blob()) .then(res => { var objectURL = URL.createObjectURL(res); myImage.src = objectURL; });
Specification | Status | Comment |
---|---|---|
Fetch The definition of 'Body' in that specification. | Living Standard |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 42
|
Yes | 39
|
No | 29 | No |
body
|
52 | Yes | No
|
No | 39 | ? |
bodyUsed
|
42
|
Yes | 39
|
No | 29
|
No |
arrayBuffer
|
42
|
Yes | 39
|
No | 29
|
No |
blob
|
42
|
Yes | 39
|
No | 29
|
No |
formData
|
60 | ? | 39
|
No | 47 | No |
json
|
42
|
Yes | 39
|
No | 29
|
No |
text
|
42
|
Yes | 39
|
No | 29
|
No |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | 42 | 42 | ? | ? | Yes | No | 4.0 |
body
|
52 | 52 | ? | No
|
39 | ? | 6.0 |
bodyUsed
|
No | No | Yes | No | No | No | No |
arrayBuffer
|
No | No | Yes | No | No | No | No |
blob
|
No | No | Yes | No | No | No | No |
formData
|
60 | 60 | ? | No | 47 | No | No |
json
|
No | No | Yes | No | No | No | No |
text
|
No | No | Yes | No | No | No | No |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Body