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 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 |
---|---|---|
Fetch The definition of 'clone()' in that specification. |
Living Standard | Initial definition |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
clone | Chrome
Full support
42
| Edge Full support 14 | 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 |
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.