fix(headers): set app origin for OPTIONS requests

This commit is contained in:
DIYgod 2025-12-24 12:18:38 +08:00
parent 0733caf0ed
commit dbff42baca
No known key found for this signature in database
2 changed files with 16 additions and 1 deletions

View File

@ -137,6 +137,7 @@ export class BootstrapManager {
details.requestHeaders = buildSafeHeaders({
url: details.url,
headers: details.requestHeaders,
method: details.method,
})
callback({ cancel: false, requestHeaders: details.requestHeaders })

View File

@ -4,7 +4,15 @@ import { imageRefererMatches } from "./img-proxy"
export const createBuildSafeHeaders =
(webUrl: string, selfRefererMatches: string[]) =>
({ url, headers = {} }: { url: string; headers?: Record<string, string> }) => {
({
url,
headers = {},
method,
}: {
url: string
headers?: Record<string, string>
method?: string
}) => {
// user agent
if (headers["User-Agent"]) {
headers["User-Agent"] = headers["User-Agent"]
@ -15,6 +23,12 @@ export const createBuildSafeHeaders =
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
}
if (method?.toUpperCase() === "OPTIONS") {
headers.Referer = "app://folo.is"
headers.Origin = "app://folo.is"
return headers
}
// referer and origin
if (selfRefererMatches.filter((i) => !!i).some((item) => url.startsWith(item))) {
headers.Referer = webUrl