如何使用应用程序/ x-www-form-urlencoded头和URLSearchParams使用isomorphic-fetch进行POST
这是一个正常工作的CURL示例:
curl --request POST \ --url <url> \ --header 'authorization: Bearer <authorization token>' \ --header 'content-type: application/x-www-form-urlencoded' \ --data 'category=1&userId=<uuid>'
我试图重现这个请求使用同构获取 。
我试过这个:
const searchParams = new URLSearchParams(); searchParams.set('category', category); searchParams.set('userId', userId); return fetch(`<url>`, { method: 'POST', headers: { 'Authorization: Bearer <authorization token>', 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' }, body: searchParams })`
但是我得到一个411
状态码错误响应( 需要的长度 )
有关URLSearchParams
和Fetch
更多信息:
获取文档
取指标
有什么build议么?
假设服务器实现是正确的,那么这里的问题是同构获取(或者更有可能的是,底层的GitHub的WHATWG Fetch填充),因为它没有添加Content-Length头部,因为它需要固定长度的主体取标准。
(您也应该能够省略Content-Type头,因为这也应该从URLSearchParams对象推断出来,并由API的实现添加)。