我尝试使用服务工作人员检测图像的错误 404。 有没有办法获取图像提取的状态代码?
self.addEventListener('fetch', function(event) {
console.log('Handling fetch event for %s', event.request.url);
event.respondWith(
fetch(event.request).then(function(response) {
if (response.status == 200) {
return response;
}
else {
/* return some default image */
}
})
);
});
此代码适用于 html 文件,但是当它获取图像时,状态代码始终为 0。有没有办法获取图像的状态代码?为了简化我的示例,我删除了缓存和其他所有内容。
这是我尝试加载的示例页面:
<body>
<!-- This image is working -->
<img src="http://www.google.ca/images/srpr/logo11w.png">
<!-- This image returns 404 -->
<img src="http://www.google.ca/images/srpr/00000.png">
</body>
所以 html 页面本身的状态是 200,但是两个图像都返回 0 的状态。
最佳答案
您将返回一个 opaque filtered response ,当您的请求不使用 CORS 时,这是预期的。在这种情况下,0
的 status
是有意模糊的——如果使用了真实的状态代码,那么如果没有 CORS 则无法获得的信息将会泄露。
fetch
规范中有一些背景信息 issue .
关于javascript - Service Worker 图像状态码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32358847/