The clone()
method of the Response
interface creates a clone of a response object, identical in every way, but stored in a different variable.
clone()
throws a TypeError
if the response Body
has already been used. In fact, the main reason clone()
exists is to allow multiple uses of Body
objects (when they are one-use only.)
Syntax
var response2 = response1.clone();
Parameters
None.
Value
A Response
object.
Example
In our Fetch Response clone example (see [[../../../../../../../mdn.github.io/fetch-examples/fetch-response-clone/index|Fetch Response clone live]]) we create a new Request
object using the Request()
constructor, passing it a JPG path. We then fetch this request using fetch()
. When the fetch resolves successfully, we clone it, extract a blob from both responses using two Body.blob
calls, create object URLs out of the blobs using URL.createObjectURL
, and display them in two separate <img>
elements.
var image1 = document.querySelector('.img1');
var image2 = document.querySelector('.img2');
var myRequest = new Request('flowers.jpg');
fetch(myRequest).then(function(response) {
var response2 = response.clone();
response.blob().then(function(myBlob) {
var objectURL = URL.createObjectURL(myBlob);
image1.src = objectURL;
});
response2.blob().then(function(myBlob) {
var objectURL = URL.createObjectURL(myBlob);
image2.src = objectURL;
});
});
Specifications
Specification | Status | Comment |
FetchThe definition of 'clone()' in that specification. | Living Standard | Initial definition |
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome Full support 42 Full support 42 Full support 41 Disabled' From version 41: this feature is behind the |
Edge
Full support 14 |
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 |
Legend
- Full support
- Full support
- No support
- No support
- 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.
See also
Response.clone() by Mozilla Contributors is licensed under CC-BY-SA 2.5.