Javascript CORS 提取 response.status = 0

Javascript CORS fetch response.status = 0

我正在制作一个 fetch-request 从域 A 到域 B 上的图像。 我在域 B (Access-Control-Allow-Origin:*)

上设置了正确的 headers

现在,如果我验证 response-status (response.status),我总是得到状态 0。 但是,如果我检查 chrome-debugger,我可以看到图像已收到,状态为 200。

.

我的use-case是根据状态码来决定是否缓存资源。由于域 B 仅包含静态资源并且缓存应该是永久性的,我认为如果 status-code 不正确,最好不要缓存(但)。

有谁知道我为什么会出现这种行为?

编辑:

好的,我自己找到了答案,我已经为此苦苦挣扎了几个小时。

e.request 源自服务人员,request-mode 似乎默认设置为 'navigate'。这必须是 'cors'

我创建了一个这样的新请求:

var request = new Request(e.request.url, {
  method: e.request.method,
  headers: e.request.headers,
  mode: 'cors',
  redirect: 'manual'});

允许 cors-content 没有 cors-mode,但 status-code 却被修改了,这对我来说确实很奇怪。

如果有人知道这背后的原因是什么?