- From: alexkar598 <notifications@github.com>
- Date: Mon, 07 Dec 2020 17:29:29 -0800
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/issues/1123@github.com>
I am not sure if this is the correct place for this but it currently is possible to distinguish between a request blocked by CORS and a request that failed to a network error.
By submitting two requests, one with mode: "cors" and the other with mode: "no-cors"
```
req. 1 success | req. 2 success | result
yes | N/A | CORS is allowed
no | yes | CORS is disallowed
no | no | Network error
```
I'm seeing several issues asking for a way to distinguish CORS blocked requests from requests that have failed due to an actual network error and security has come up several times as a reason as to why requests blocked by CORS shouldn't be distinguishable so this seems rather inconsistant with how mode: "cors" requests operate.
<details><summary>Sample code</summary>
<pre>
async function testCors(url) {
//First try to make a request using mode: "cors"
let failed = false;
try {
await fetch(new Request(url, {mode: "cors"}));
} catch {
failed = true;
}
//If the request succeeds, then the page isn't blocked by CORS
if(!failed) {
console.log(url + " is reachable and wasn't blocked by CORS");
return url + " is reachable and wasn't blocked by CORS"
}
//At this point the first request has failed, now we try again but without CORS
let failed2 = false;
try {
await fetch(new Request(url, {mode: "no-cors"}));
} catch {
failed2 = true;
}
if(failed2) {
//If we still can't make a request, then it truly is unreachable
console.log(url + " is unreachable");
return url + " is unreachable";
} else {
//But if it does work, it confirms that the host exists and it is blocking our requests because of CORS
console.log(url + " was blocked due by CORS but is still reachable");
return url + " was blocked due by CORS but is still reachable";
}
}
</pre>
</details>
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/1123
Received on Tuesday, 8 December 2020 01:29:42 UTC