SvelteKit中api目录下+server.js的请求头设置方法咨询
在SvelteKit的API路由(+server.js)中设置响应头的方法
在SvelteKit的API路由(比如api/something/+server.js)里,你需要通过标准Web API的Response对象配置参数来设置响应头——这和+page.server.js里用event.setHeaders的方式不同,API路由直接操作返回的Response即可。
先修正你代码里的两个关键问题:
- 不能直接把JS对象传给
Response构造函数,需要先序列化为JSON字符串 - 设置响应头需要在
Response的第二个配置参数中指定
写法一:使用Headers对象(适合多头部场景)
export async function POST(event) { // 序列化响应体为JSON格式字符串 const responseBody = JSON.stringify({ success: true }); // 创建Headers实例并添加头部信息 const headers = new Headers(); headers.append('potato', 'something'); headers.append('Content-Type', 'application/json'); // 必须设置,确保前端能正确解析JSON return new Response(responseBody, { headers }); }
写法二:直接传入头对象(简洁写法)
如果头部信息不多,可以直接在配置对象中定义键值对:
export async function POST(event) { return new Response(JSON.stringify({ success: true }), { headers: { 'potato': 'something', 'Content-Type': 'application/json' } }); }
核心逻辑:API路由的请求处理函数返回的是标准Response对象,所有Fetch API中Response的配置规则都适用,你可以根据需求添加任意合法的响应头。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

