a simple Cloudflare worker single page proxy to fix CORS issues
cloudfare workers proxy edited
41 lines 1.1 kB view raw
1export default { 2 async fetch(request) { 3 try { 4 const targetOrigin = "https://example.com"; 5 6 // Build new URL 7 const url = new URL(request.url); 8 url.hostname = "example.com"; 9 url.protocol = "https:"; 10 11 const finalUrl = url.toString(); 12 13 // Forward headers safely 14 const newHeaders = new Headers(request.headers); 15 newHeaders.delete("host"); 16 newHeaders.delete("cf-connecting-ip"); 17 newHeaders.delete("cf-ipcountry"); 18 newHeaders.delete("cf-ray"); 19 newHeaders.delete("cf-worker"); 20 21 // Forward request 22 const response = await fetch(finalUrl, { 23 method: request.method, 24 headers: newHeaders, 25 body: request.method !== "GET" && request.method !== "HEAD" ? request.body : null, 26 redirect: "follow" 27 }); 28 29 // Copy response headers 30 const resHeaders = new Headers(response.headers); 31 32 return new Response(response.body, { 33 status: response.status, 34 headers: resHeaders 35 }); 36 37 } catch (err) { 38 return new Response(`Proxy error: ${err.message}`, { status: 502 }); 39 } 40 } 41};