我正在从域A到域B上的图像进行提取请求。 我在域B上设置了正确的标头(Access-Control-Allow-Origin:*)
现在,如果我验证响应状态(response.status),我总是获得状态0。 但是,如果我签入chrome-debugger,我可以看到收到状态为200的图像。
我的用例是决定是否根据状态代码缓存资源。由于域B只包含静态资源,并且缓存应该是永久性的,我认为如果状态代码不正确,最好不要缓存(但是)。
有谁知道我为什么会这样做?
编辑:
这是代码段:
fetch(e.request).then(function(response){
console.log(e.request.url+' - '+response.status);
}
答案 0 :(得分:0)
好的,我已经找到了答案,我已经在这几个小时内一直在努力。
e.request来自服务工作者,似乎请求模式默认设置为“导航”。这必须是'cors'
我已经创建了一个这样的新请求:
var request = new Request(e.request.url, {
method: e.request.method,
headers: e.request.headers,
mode: 'cors',
redirect: 'manual'});
对我而言,在没有cors-mode的情况下允许使用cors-content似乎很奇怪,但状态代码仍会被修改。
如果有人知道这可能是什么原因?