{{APIRef("Fetch")}}{{SeeCompatTable}}
The mode
read-only property of the {{domxref("Request")}} interface contains the mode of the request (e.g., cors
, no-cors
, cors-with-forced-preflight
, same-origin
, or navigate
.) This is used to determine if cross-origin requests lead to valid responses, and which properties of the response are readable:
same-origin
— If a request is made to another origin with this mode set, the result is simply an error. You could use this to ensure that a request is always being made to your origin.no-cors
— Prevents the method from being anything other thanHEAD
,GET
orPOST
. If any ServiceWorkers intercept these requests, they may not add or override any headers except for these. In addition, JavaScript may not access any properties of the resulting {{domxref("Response")}}. This ensures that ServiceWorkers do not affect the semantics of the Web and prevents security and privacy issues arising from leaking data across domains.cors
— Allows cross-origin requests, for example to access various APIs offered by 3rd party vendors. These are expected to adhere to the CORS protocol. Only a limited set of headers are exposed in the {{domxref("Response")}}, but the body is readable.navigate
— A mode for supporting navigation. Thenavigate
value is intended to be used only by HTML navigation. A navigate request is created only while navigating between documents.
Syntax
var myMode = request.mode;
Value
A {{domxref("RequestMode")}} value.
Example
In the following snippet, we create a new request using the {{domxref("Request.Request()")}} constructor (for an image file in the same directory as the script), then save the request mode in a variable:
var myRequest = new Request('flowers.jpg'); var myMode = myRequest.mode; // returns "cors" by default
Specifications
Specification | Status | Comment |
---|---|---|
{{SpecName('Fetch','#dom-request-mode', 'mode')}} | {{Spec2('Fetch')}} | Initial definition |
Browser compatibility
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | {{CompatChrome(42.0)}} | {{CompatGeckoDesktop(39)}} | {{CompatNo}} |
29 |
{{CompatNo}} |
navigate mode |
{{CompatChrome(49.0)}} | {{CompatGeckoDesktop(46)}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | {{CompatNo}} | {{CompatChrome(49.0)}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatChrome(49.0)}} |
navigate mode |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatChrome(49.0)}} |