blob: 9bd88a1f8eb2b4f3eb8f02071ce8486af4dc5c3b (
plain)
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
29
30
31
32
33
34
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
async function handleRequest(request, response) {
const query = new URLSearchParams(request.queryString);
const requestUserAgent = request.getHeader("user-agent");
const redirectRequestUserAgent = getState(
"redirect-request-user-agent-header"
);
const shouldRedirect = query.has("redirect");
if (shouldRedirect) {
response.setStatusLine(request.httpVersion, 302, "Found");
setState("redirect-request-user-agent-header", requestUserAgent);
response.setHeader(
"Location",
`http://${request.host}${request.path}?redirected`
);
} else {
response.setStatusLine(request.httpVersion, 200, "OK");
response.write(`
<script>
globalThis.requestUserAgent = ${JSON.stringify(requestUserAgent)};
globalThis.redirectRequestUserAgent = ${JSON.stringify(
redirectRequestUserAgent
)};
</script>
${requestUserAgent}
`);
}
}
|