cloudflare的worker反向代理及cookie请求操作笔记

cloudflare的worker反向代理及cookie请求操作笔记

涉及get、post请求传值、代理、地域限制、cookie操作示例代码:

800_auto

1、反向代理

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url);
  url.hostname = 'example.com';
  const data = await fetch(url.toString(),request);
  return data;
}

将example.com换成你要代理访问的域名网站

2、设置cookie

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
    const url = new URL(request.url);
    url.hostname = 'example.com';
    const data = await fetch(url.toString(), request);

    let setCookie = ` path=/; domain=[DOMAIN]; secure; HttpOnly; SameSite=None`;
    data.headers.set('Set-Cookie', setCookie);

    return data;
}

3、国家地区访问限制

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {


    const country = request.cf.country;
    const cussFreeCountries = ['IN','CN',
        'KP'];

    if (cussFreeCountries.includes(country)) {
        return new Response("forbiden", {
            status: 500
        })
    }

    new Response("hello");

}

4、获取url地址的query参数值

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
})

async function handle...

点击查看剩余70%

{{collectdata}}

网友评论