1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { fetch } from "https://esm.town/v/std/fetch";
export const headersExample = async (request: Request) => {
let url = new URL(request.url);
const targetUrl = url.searchParams.get("url");
// If no 'url' query parameter was provided, return an error message
if (!targetUrl) {
return new Response(JSON.stringify({ error: "Missing URL parameter" }), {
headers: { "Content-Type": "application/json" },
status: 400,
});
}
const response = await fetch(targetUrl);
console.log(response);
let headersObject = {};
for (let [key, value] of response.headers.entries()) {
// console.log(key, value)
headersObject[key] = value;
}
// Set CORS headers
let headers = new Headers({
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,HEAD,POST,OPTIONS",
"Access-Control-Max-Age": "86400",
});
// return Response(JSON.stringify({cf,headersObject }), { headers });
return Response.json(headersObject);
};