CapacitorHttp.post在移动设备/模拟器上无法发送JSON数据的原因
问题分析与解决方案
你的POST请求体为空的核心原因是缺少Content-Type: application/json请求头,服务器无法识别请求体的格式,因此无法解析你发送的JSON数据。
虽然你设置了accept头(告诉服务器你接受JSON格式的响应),但没有明确告知服务器你发送的请求体是JSON类型。Capacitor HTTP插件在这种情况下不会自动添加Content-Type头,导致数据没有被正确序列化为JSON字符串发送。
修复后的代码
import { CapacitorHttp } from '@capacitor/core'; async test() { const options = { url: 'https://httpbin.org/post', headers: { 'accept': 'application/json', 'Content-Type': 'application/json' // 新增此请求头 }, data: { "foo": "bar" }, }; const response = await CapacitorHttp.post(options); console.log(response.data); }
额外说明
如果后续需要发送表单数据(application/x-www-form-urlencoded),则需要将Content-Type设置为对应值,并确保data是键值对形式的普通对象,插件会自动处理序列化。
内容的提问来源于stack exchange,提问作者Pavel Chuchuva
相关产品推荐
相关产品推荐

