Response: type property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
Note: This feature is available in Web Workers.
The type
read-only property of the Response
interface contains the type of the response.
It can be one of the following:
basic
: Normal, same origin response, with all headers exposed except "Set-Cookie".cors
: Response was received from a valid cross-origin request. Certain headers and the body may be accessed.error
: Network error. No useful information describing the error is available. The Response's status is 0, headers are empty and immutable. This is the type for a Response obtained fromResponse.error()
.opaque
: Response for "no-cors" request to cross-origin resource. Severely restricted.opaqueredirect
: The fetch request was made withredirect: "manual"
. The Response's status is 0, headers are empty, body is null and trailer is empty.
Note:
An "error" Response never really gets exposed to script: such a response to a fetch()
would reject the promise.
Value
A ResponseType
string indicating the type of the response.
Examples
In our Fetch Response example (see Fetch Response live) we create a new Request
object using the Request()
constructor, passing it a JPG path.
We then fetch this request using fetch()
, extract a blob from the response using Response.blob
, create an object URL out of it using URL.createObjectURL()
, and display this in an <img>
.
Note that at the top of the fetch()
block we log the response type
to the console.
const myImage = document.querySelector("img");
const myRequest = new Request("flowers.jpg");
fetch(myRequest)
.then((response) => {
console.log("response.type =", response.type); // response.type = 'basic'
return response.blob();
})
.then((myBlob) => {
const objectURL = URL.createObjectURL(myBlob);
myImage.src = objectURL;
});
Specifications
Specification |
---|
Fetch Standard # ref-for-dom-response-type① |
Browser compatibility
BCD tables only load in the browser