Remix Run + React框架:表单提交内容为空问题求助
Remix表单提交FormData显示为空的解决方法
核心问题:直接
console.log(body)看不到FormData内容,是因为FormData属于异步可迭代对象,无法通过直接打印输出完整内容,必须先做解析处理。正确的服务器端处理方式:
在Remix的action函数中,需要先通过await request.formData()解析请求体,再获取对应数据:export async function action({ request }) { // 解析表单数据 const formData = await request.formData(); // 获取单个字段值 const name = formData.get("name"); console.log(name); // 会输出'test' // 或者转换为普通对象方便查看完整内容 const formObj = Object.fromEntries(formData); console.log(formObj); // 会输出{ name: 'test' } }原因说明:
浏览器开发者工具里看到的Form Data是已序列化的请求内容,但服务器端的request.body是可读流,FormData对象本身不会在console.log时自动展开实际内容,必须通过异步方法读取解析后,才能拿到真实的表单字段值。
内容的提问来源于stack exchange,提问作者zilla
相关产品推荐
相关产品推荐

