然后你就可以用 域名?proxy_url=源URL 来跳过源URL的cors限制
1 个赞
你的哪个搞了好久会报错,我刚刚终于成功了 看看我的
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
if (request.method === 'OPTIONS') {
// 处理预检请求
return new Response(null, {
status: 200,
headers: {
'Access-Control-Allow-Origin': '*', // 替换为你的前端应用域名?不也行
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Credentials': 'true'
}
});
}
// 目标 URL
const targetUrl = request.url.replace('https://cors.你的.workers.dev/', 'http://你真的后端.com.cn/');
// 创建新的请求
const modifiedRequest = new Request(targetUrl, {
method: request.method,
headers: request.headers,
body: request.method !== 'GET' && request.method !== 'HEAD' ? await request.text() : null
});
// 获取目标 URL 的响应
const response = await fetch(modifiedRequest);
// 创建新的响应头
const newHeaders = new Headers(response.headers);
newHeaders.set('Access-Control-Allow-Origin', '*');
newHeaders.set('Access-Control-Allow-Methods', '*');
newHeaders.set('Access-Control-Allow-Headers', '*');
newHeaders.set('Access-Control-Allow-Credentials', 'true');
// 返回新的响应
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: newHeaders
});
}
怀疑你是优选了或者弄了别的东西。正常情况下使用直接托管在cloudflare的域名,直接添加自定义域就能免翻墙访问了。
1 个赞
你这个只能代理一个,不是通用型的
用直接托管在cloudflare上面的二级域名的子域名。不要用三级域名的子域名,某些三级域名的子域名是会有问题的。
比如说应该直接用 xxxxx.com 的子域名
比如我的这个就是能正常访问的: test.aiuuo.com
1 个赞
可以借用worker代理的思路,请求并转发内容,设置跨域请求头为*
把 /a 换成 /* 就行
是设置自定义路由还是自定义域呀
设置自定义域就行,但也可以设置路由,如果设置路由的话还需要设置a记录指向cloudflare的ip
这个域名好像要双向解析,没用过
cloudns要泛域名解析,应该是先把一个三级域名NS到cf,cf上A到任意位置开小黄云,再把@都CNAME到那个三级域名上