diff options
| author | Fuwn <[email protected]> | 2024-07-12 20:14:48 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-07-12 20:25:51 -0700 |
| commit | 6aabbab207d8fd6876e8e09def6f8a816b7e59d0 (patch) | |
| tree | 0a3b830873dd86c58aaad53479ee2a8ad541c9ad | |
| parent | feat: return errors on bad request (diff) | |
| download | due-proxy-6aabbab207d8fd6876e8e09def6f8a816b7e59d0.tar.xz due-proxy-6aabbab207d8fd6876e8e09def6f8a816b7e59d0.zip | |
feat: allow encoded queries
| -rw-r--r-- | src/index.js | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/index.js b/src/index.js index df6f83a..8e1eda8 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,23 @@ const handleRequest = async (request) => { try { const url = new URL(request.url); - const query = url.search.split('?q=')[1]; + let query; + + if (url.search.includes('?q=')) { + query = url.search.split('?q=')[1]; + } else if (url.search.includes('?d=')) { + query = atob(url.search.split('?d=')[1]); + } else { + return new Response(null, { + status: 400, + statusText: 'Bad Request', + }); + } request = new Request(query, request); request.headers.set('Host', new URL(query).origin); - request.headers.set('Referer', new URL(query)); + request.headers.set('Referrer', new URL(query)); request.headers.set('Origin', new URL(query)); request.headers.set('Access-Control-Allow-Credentials', 'true'); request.headers.delete('X-Content-Type-Options'); @@ -23,8 +34,7 @@ const handleRequest = async (request) => { } catch { return new Response(null, { status: 400, - - statusText: 'bad request', + statusText: 'Bad Request', }); } }; @@ -72,8 +82,7 @@ addEventListener('fetch', (event) => { event.respondWith(async () => { return new Response(null, { status: 405, - - statusText: 'method not allowed', + statusText: 'Method Not Allowed', }); }); @@ -82,8 +91,7 @@ addEventListener('fetch', (event) => { } catch { return new Response(null, { status: 400, - - statusText: 'bad request', + statusText: 'Bad Request', }); } }); |