Cloudflare服务工作者代码“绕过cookie上的缓存”无效

时间:2018-03-12 03:19:05

标签: service-worker cloudflare

我将此代码编写为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
})

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这个让我知道

Predicate