我想使用cloudflare的worker去代理pixiv的网页api,无论如何操作他都显示access block。求助大佬们有办法解决吗?
worker里运行的代码如下
// API地址
const api = 'https://www.pixiv.net/';
// 替换地址 (改为空值不替换)
const referTo = 'https://pixivproxy.jb5mnthzkr.workers.dev/';
async function handleRequest(request, origin, pathname, searchParams) {
const apiUrl = new URL(api);
apiUrl.pathname = pathname;
for (const [key, value] of searchParams) {
apiUrl.searchParams.append(key, value);
}
request = new Request(apiUrl, request);
request.headers.set('Origin', apiUrl.origin);
request.headers.set(
'User-Agent',
`
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`
);
request.headers.set(
'Cookie',
`first_visit_datetime_pc=2023-12-04%2022%3A59%3A06; p_ab_id=3; p_ab_id_2=8; p_ab_d_id=413186323; yuid_b=QmOZc3Y; privacy_policy_agreement=6; c_type=23; privacy_policy_notification=0; a_type=0; b_type=1; cf_clearance=HOHv0yK_Oud3Sa6uAw22fnU3jmm0pkg4ad394O43570-1701698378-0-1-5563bb9a.22931ce.262e47a-0.2.1701698378; _ga=GA1.2.1288699713.1701698348; _ga_75BBYNYN9J=GS1.1.1701698347.1.1.1701698851.0.0.0; PHPSESSID=botul8mqs7jp32hvbnl8ebgca350f6m3; cc1=2024-04-07%2023%3A03%3A19; __cf_bm=9X8RqHcbturIbBoLx2y4M_gjPPNgLOGtadHswmAifzE-1712498599-1.0.1.1-tviHI53aB9dxXNxNdI6_Yt5kYm2jMXXAURj.yXYpuZjvJIpYhgBo7Q8VxTGe82iFk8LjelTWHUwPJPMxE55ouHOWdGklN9Huj6fcc1FIRC4`
);
request.headers.set('Referrer', `https://www.pixiv.net/`);
let response = await fetch(request, { method: 'GET' });
if (response.status == 200 || response.status == 301 || response.status == 302) {
let changed = false;
if (referTo.length > 0) {
const type = response.headers.get('Content-Type');
if (
type != null &&
(type.includes('text') || type.includes('javascript') || type.includes('json'))
) {
let body = await response.text();
body = body.replace(api, referTo);
response = new Response(body, response);
changed = true;
}
}
if (!changed) response = new Response(response.body, response);
response.headers.set('Access-Control-Allow-Origin', origin);
response.headers.append('Vary', 'Origin');
}
return response;
}
addEventListener('fetch', (event) => {
const request = event.request;
const url = new URL(request.url);
const origin = request.headers.get('Origin');
const pathname = url.pathname;
const searchParams = url.searchParams;
return event.respondWith(handleRequest(request, origin, pathname, searchParams));
});
代理的地址:https://pixivproxy.jb5mnthzkr.workers.dev/touch/ajax/illust/details?illust_id=121121
访问被阻断。

代理地址:https://pixivproxy.jb5mnthzkr.workers.dev/touch/ajax/illust/details?illust_id=121223
源地址:https://www.pixiv.net/touch/ajax/illust/details?illust_id=121223
if asn=13335
return sb
我是说有没有一种可能…
worker不能访问cloudflare的IP段?
而pixiv是什么IP不用我说吧
你猜猜worker vless做FallbackIP干什么
@BlueSkyXN #2 还有这种限制吗?