我有REST后端和一个HTML前端。我在前端使用表单向后端发送请求。为此,我使用FormData将表单对象转换为JSON对象,以便发送到REST后端。
这是表格
<form id="form">
<label for="string">string:</label><br>
<input type="text" id="string" name="string" value="string"><br>
<label for="number">number:</label><br>
<input type="number" id="number" name="number" value="12"><br><br>
<input type="submit" value="Submit">
</form>
而is是我用来将表单转换为JSON对象的函数:
window.onload = function(){
const form = document.getElementById('form')
form.onsubmit=send
}
function send(e){
e.preventDefault()
var data=new FormData(e.target)
data=Object.fromEntries(data)
console.log(data)
}
不幸的是,FormData将数字输入转换为字符串,但后端需要实际的数字。我知道我可以为每个表单字段手动将它们重新转换回数字,但这不是应用程序中唯一的表单,我希望能够重用相同的代码来提交到不同的端点。
{
"string": "string",
"number": "12"
}
那么,有没有一种方法可以使FormData不将数字转换为字符串,或者是FormData的替代方法,或者是一种方法,如果原始输入是数字输入,可以自动将字符串重新转换为数字?
2条答案
按热度按时间bakd9h0s1#
使用
formData
时,所有内容都将位于字符串format
和key-value
对中。Please check here for more explanation06odsfpq2#
实际上你不能发送整数,当你使用formData时,所有的数据都是字符串格式和键-值对。或者,你可以在后端将它们转换成所需的数据类型。Know more about FormData here