我将此代码编写为Cloudflare Service Worker,旨在精确模拟其“在Cookie上绕过缓存”的本机功能。具体来说,如果某人有Wordpress cookie - 它会绕过缓存,否则就不会。
它似乎根本不起作用 - 尽管有一个cookie并且已经登录(通过Chrome开发人员工具确认) - 我仍然在这个示例域上获得了Cloudflare缓存HIT - Tallyfy。有什么问题吗?帮助赞赏!
// A Service Worker which skips cache if the request contains a cookie.
addEventListener('fetch', event => {
let request = event.request;
var flag=false;
if(request.headers.cookie) {
var pairs = request.headers.cookie.split(";");
var patt = new RegExp("wp-.*|wordpress.*|comment_.*|woocommerce_.*")
for(var i=0;i<pairs.length;i++){
if(patt.test(pairs[i])){
flag = true;
break;
}
}
}
if (request.headers.has('Cookie') && flag) {
// Cookie present. Add Cache-Control: no-cache.
let newHeaders = new Headers(request.headers)
newHeaders.set('Cache-Control', 'no-cache')
event.respondWith(fetch(request, {headers: newHeaders}))
}
// Use default behavior.
return
})
答案 0 :(得分:0)
试试这个让我知道
Predicate