diff --git a/src/userscript/main/request.ts b/src/userscript/main/request.ts index f9104d8f..89008693 100644 --- a/src/userscript/main/request.ts +++ b/src/userscript/main/request.ts @@ -45,7 +45,7 @@ export const request = async ( // 为了支持 ios 端只能自己实现一下了 if ( details?.fetch ?? - (/^(\/|blob:)/.test(url) || url.startsWith(window.location.origin)) + (url.startsWith('/') || url.startsWith(window.location.origin)) ) { const res = await fetch(url, { method: 'GET', diff --git a/src/userscript/useComponents/DownloadButton.tsx b/src/userscript/useComponents/DownloadButton.tsx index 33084ad7..aba70328 100644 --- a/src/userscript/useComponents/DownloadButton.tsx +++ b/src/userscript/useComponents/DownloadButton.tsx @@ -9,14 +9,18 @@ import { request } from '../main/request'; import { toast } from './Toast'; -const Accept = - 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8'; - /** 下载按钮 */ export const DownloadButton = () => { const [statu, setStatu] = createSignal('button.download'); const handleDownload = async () => { + const headers = { + Accept: + 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8', + 'User-Agent': navigator.userAgent, + Referer: window.location.href, + }; + const fileData: Zippable = {}; const { imgList } = store; @@ -41,7 +45,7 @@ export const DownloadButton = () => { let fileName: string; try { const res = await request(url, { - headers: { Accept }, + headers, responseType: 'blob', errorText: `${t('alert.download_failed')}: ${index}`, });