Add dynamic CORS headers

This commit is contained in:
Pham Ba Tuan committed 2025-06-07 14:43:22 +07:00
1 parent 14f53ac505
commit 7599850e27
1 file changed
+26 -18
+26 -18
View File
@@ -129,29 +129,37 @@ async function handleRequest(request) {
});
try {
const tgRes = await fetch(proxyReq);
const res = new Response(tgRes.body, tgRes); // Copy response as-is
res.headers.set('Access-Control-Allow-Origin', '*');
res.headers.set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
res.headers.set('Access-Control-Allow-Headers', 'Content-Type');
return res;
const tgRes = await fetch(proxyReq);
const res = new Response(tgRes.body, tgRes); // Copy response as-is
const reqAllowHeaders = request.headers.get('Access-Control-Request-Headers');
const allowHeaders = reqAllowHeaders ? reqAllowHeaders : 'Content-Type';
res.headers.set('Access-Control-Allow-Origin', '*');
res.headers.set(
'Access-Control-Allow-Methods',
'GET, POST, PUT, DELETE, OPTIONS, HEAD'
);
res.headers.set('Access-Control-Allow-Headers', allowHeaders);
return res;
} catch (err) {
return new Response(`Error proxying request: ${err.message}`, { status: 500 });
}
}
// Handle OPTIONS requests for CORS
function handleOptions(request) {
const corsHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Max-Age': '86400',
};
return new Response(null, {
status: 204,
headers: corsHeaders,
});
function handleOptions(request) {
const reqAllowHeaders = request.headers.get('Access-Control-Request-Headers');
const allowHeaders = reqAllowHeaders ? reqAllowHeaders : 'Content-Type';
const corsHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS, HEAD',
'Access-Control-Allow-Headers': allowHeaders,
'Access-Control-Max-Age': '86400',
};
return new Response(null, {
status: 204,
headers: corsHeaders,
});
}
// Main event listener for the worker