r1a dev

路漫漫其修远兮,吾将上下而求索

首页
关于
链接
Admin
RSS
Email


vercel搭建跨域API

  • 作者: runoneall
  • 时间: 2025-03-23
  • 分类: 默认分类

使用 vercel edge function

export const runtime = 'edge';

async function handleRequest(req: Request) {
    const url = new URL(req.url);
    const targetUrl = decodeURIComponent(url.search).slice(1);

    const reqInit: RequestInit & { duplex?: string } = {
        headers: req.headers,
        method: req.method,
        body: req.body,
        redirect: 'follow',
        duplex: 'half'
    };
    const modifiedRequest = new Request(targetUrl, reqInit);
    const resp = await fetch(modifiedRequest);

    return new Response(resp.body, {
        status: resp.status,
        statusText: resp.statusText,
        headers: new Headers({
            ...resp.headers,
            'Cache-Control': 'no-store',
            'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
            'Access-Control-Allow-Headers': '*',
            'Access-Control-Allow-Origin': '*',
        }),
    });
}

export const GET = handleRequest;
export const POST = handleRequest;
export const PUT = handleRequest;
export const DELETE = handleRequest;
export const PATCH = handleRequest;
export const OPTIONS = handleRequest;

保存为 vap.ts (名称随意)
API地址: <域名>/api/<保存名称>?<目标URL>

标签: none

评论已关闭

  • 上一篇: 整活成真的了!
  • 下一篇: 基于深度学习的离线tts和stt的python实现
© 2025 r1a dev. Old Fasion Theme. Powered by Typecho.