mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-05-25 15:10:17 +09:00
fix: #185
This commit is contained in:
parent
fee45f7b23
commit
c8b7378b70
37
app/api/cors/route.ts
Normal file
37
app/api/cors/route.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
async function handle(req: NextRequest) {
|
||||
if (req.method === "OPTIONS") {
|
||||
return NextResponse.json({ body: "OK" }, { status: 200 });
|
||||
}
|
||||
|
||||
const targetUrl = req.nextUrl.searchParams.get("url");
|
||||
|
||||
if (!targetUrl) {
|
||||
return NextResponse.json({ body: "Bad Url" }, { status: 500 });
|
||||
}
|
||||
|
||||
const method = req.headers.get("method") ?? undefined;
|
||||
const fetchOptions: RequestInit = {
|
||||
headers: {
|
||||
authorization: req.headers.get("authorization") ?? "",
|
||||
},
|
||||
method,
|
||||
// @ts-ignore
|
||||
duplex: "half",
|
||||
};
|
||||
|
||||
const fetchResult = await fetch(targetUrl, fetchOptions);
|
||||
|
||||
console.log("[Any Proxy]", targetUrl, {
|
||||
status: fetchResult.status,
|
||||
statusText: fetchResult.statusText,
|
||||
});
|
||||
|
||||
return fetchResult;
|
||||
}
|
||||
|
||||
export const GET = handle;
|
||||
export const OPTIONS = handle;
|
||||
|
||||
export const runtime = "edge";
|
@ -515,6 +515,17 @@ export function ImagePreviewer(props: {
|
||||
}
|
||||
};
|
||||
|
||||
const markdownImageUrlCorsProcess = (markdownContent: string) => {
|
||||
const updatedContent = markdownContent.replace(
|
||||
/!\[.*?\]\((.*?)\)/g,
|
||||
(match, url) => {
|
||||
const updatedURL = `/api/cors?url=${encodeURIComponent(url)}`;
|
||||
return ``;
|
||||
},
|
||||
);
|
||||
return updatedContent;
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={styles["image-previewer"]}>
|
||||
<PreviewActions
|
||||
@ -580,7 +591,7 @@ export function ImagePreviewer(props: {
|
||||
|
||||
<div className={styles["body"]}>
|
||||
<Markdown
|
||||
content={m.content}
|
||||
content={markdownImageUrlCorsProcess(m.content)}
|
||||
imageBase64={m.image_url}
|
||||
fontSize={config.fontSize}
|
||||
defaultShow
|
||||
|
Loading…
Reference in New Issue
Block a user