summaryrefslogtreecommitdiff
path: root/src/index.js
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-07-12 20:14:48 -0700
committerFuwn <[email protected]>2024-07-12 20:25:51 -0700
commit6aabbab207d8fd6876e8e09def6f8a816b7e59d0 (patch)
tree0a3b830873dd86c58aaad53479ee2a8ad541c9ad /src/index.js
parentfeat: return errors on bad request (diff)
downloaddue-proxy-6aabbab207d8fd6876e8e09def6f8a816b7e59d0.tar.xz
due-proxy-6aabbab207d8fd6876e8e09def6f8a816b7e59d0.zip
feat: allow encoded queries
Diffstat (limited to 'src/index.js')
-rw-r--r--src/index.js24
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',
});
}
});