You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SvelteKit API POST请求中如何获取请求体数据?

SvelteKit +server.js中获取POST请求体数据的方法

你在SvelteKit的$lib/components/newsletter.svelte组件中通过fetch发送JSON格式的POST请求,能正常收到服务器响应,但在api/newsletter/+server.js的POST处理函数中,直接打印requestEvent.request.body得到的是ReadableStream对象,无法提取出useremail字段。

解决方法

因为前端发送的是JSON格式请求体,在SvelteKit的server路由中,可通过requestEvent.request.json()方法直接解析请求体,该方法会返回解析后的JavaScript对象,直接解构就能获取useremail。

修改后的+server.js代码如下:

import { json } from '@sveltejs/kit'

export async function POST(requestEvent) {
    // 解析JSON请求体并解构出useremail
    const { useremail } = await requestEvent.request.json()
    console.log("用户邮箱:", useremail) // 输出 abc@onetwothree.com

    // 此处可添加存入数据库的逻辑
    // 示例:await db.insert(emailTable).values({ email: useremail })

    const postresults = "POST handle -- return something..."
    return json(postresults)
}

补充说明

  • 若前端发送的是表单数据(Content-Type: application/x-www-form-urlencoded),需使用await requestEvent.request.formData()解析,再通过formData.get('useremail')获取对应字段值。
  • request.body是原生Web API的ReadableStream对象,必须通过对应解析方法读取内容,SvelteKit遵循标准Request API的用法。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:32:13