React Native提交表单到API时遇JSON Parse error: Unexpected EOF错误怎么解决?
问题分析与解决方案
核心错误原因
你代码里犯了两个关键错误,导致API无法解析请求:
- 错误处理FormData:创建
FormData对象后,你用JSON.stringify(data_f)把它转成JSON字符串发送,但FormData无法被正确序列化为有效JSON,生成的内容会让API解析时抛出Unexpected EOF错误。 - 错误设置请求头:你设置了
'Content-Type': 'application/json',但实际发送的是带文件的表单数据,API期望的是multipart/form-data类型(和你用Postman测试时的请求类型一致)。
修复代码
修改fetch请求部分,调整如下:
await fetch('https://store.beraty.com/api/create-ad-for-storefront-api.php', { method: 'POST', headers: { Accept: 'application/json', // 移除手动设置的application/json类型头 }, // 直接传入FormData对象,不要用JSON.stringify处理 body: data_f, }).then((response) => { console.log('FormData内容:', data_f) return response.json() }) // 后续逻辑保持不变
额外注意事项
- 确认
disSession、disSession2、userSessD这些变量已正确赋值,避免FormData缺少必要的认证参数。 - 检查
photo数组里的图片对象是否包含正确的uri、type、name字段,确保文件能正常上传。
内容的提问来源于stack exchange,提问作者Tosin Seyi
相关产品推荐
相关产品推荐

