共计 1422 个字符,预计需要花费 4 分钟才能阅读完成。
内容最后由 龙腾宇内 于 2023-5-24 11:44 编辑 首先要感谢 https://369369.xyz/host/topic/1171965.html 次改良版本也是基于此,没什么技术含量。研究了下 dz 的源代码,查看校验逻辑要求 Referer 参数也一致。附上我自己的反代示例:https://loc.xiu.ee 稍作修改即可,完整代码如下:addEventListener(\’fetch\’, event => { event.respondWith(handleRequest(event.request));});// 准备反代的目的域名 let target_url = "https://example.com";// 要替换内容的正则表达式 let target_url_reg = /hostloc\\.com/g;async function handleRequest(request) { let url = new URL(request.url); url.hostname = new URL(target_url).hostname; // 复制响应对象并更新它的属性 let headers = new Headers(request.headers); headers.set("Referer", target_url); let response = await fetch(url, { method: request.method, headers: headers, body: request.body }); // 检查响应头中的内容类型 const contentType = response.headers.get(\’content-type\’); if (contentType && contentType.includes(\’text\’)) { // 如果是文本类型,替换响应主体中的 URL let responseBody = await response.text(); responseBody = responseBody.replace(target_url_reg, new URL(request.url).hostname); // 复制响应对象并更新它的属性 let headers = new Headers(response.headers); headers.set(\’Access-Control-Allow-Origin\’, \’*\’); headers.set(\’Access-Control-Allow-Methods\’, \’GET\’); headers.set(\’Access-Control-Allow-Headers\’, \’Content-Type\’); return new Response(responseBody, { status: response.status, statusText: response.statusText, headers: headers }); } else { // 如果不是文本类型,直接返回响应对象 return response; }} 复制代码 没有大脚 2023-05-24 11:45 2 前排支持 龙腾宇内 2023-05-24 11:50 3 登录有点问题,下午修一下 HOH 2023-05-24 11:56 4 前排提示:使用他人反代站,等于自己把帐号拱手让给他人