我们的服务人员做了一件事:它将每个请求转发到服务器,当服务器脱机时,服务人员捕获异常并显示“离线”页面。
文档说,为了让服务工作者发送cookie,需要定义凭证,如下所示:
fetch(url, {
credentials: "same-origin"
}).then(...).catch(...);
问题:我们没有设置凭据,为什么我们的服务器在使用此代码时仍然收到cookie:
self.addEventListener('fetch', function(event) {
event.respondWith(
fetch( event.request ).catch(function(error) {
return caches.open('offline').then(function(cache) {
return cache.match("/offline.html");
});
})
);
});
PS:我们很高兴,但不确定为什么会这样做
答案 0 :(得分:0)
Cookie始终针对不由fetch()
启动的同源请求发送。例如,请考虑以下页面:
Cookie与" index.html"一起发送请求自己以及在其中声明的这些资源:
<link rel="style.css">
<img src="image.jpg">
<script src="script.js"></script>
默认情况下,脚本中的同源请求不会发送cookie:
<script>
// cookies not sent
fetch('style.css')
// cookies sent
fetch('style.css', {credentials: "same-origin"})
</script>