Javascript 如何将表单数据发布为JSON?
我正在尝试为我们正在进行的一个小组项目建立一个注册站点,但不知道如何将表单数据作为json发送。我已经尝试了很多谷歌搜索和修改代码,但似乎没有任何效果。我遇到的问题是,当我按下submit按钮时,API会出现如下错误: {“”:[“输入无效。”]} 我认为原因是我的表单不以JSON的形式发送数据,而是他们根据API文档要求的格式。我的表单代码如下所示:Javascript 如何将表单数据发布为JSON?,javascript,jquery,html,ajax,forms,Javascript,Jquery,Html,Ajax,Forms,我正在尝试为我们正在进行的一个小组项目建立一个注册站点,但不知道如何将表单数据作为json发送。我已经尝试了很多谷歌搜索和修改代码,但似乎没有任何效果。我遇到的问题是,当我按下submit按钮时,API会出现如下错误: {“”:[“输入无效。”]} 我认为原因是我的表单不以JSON的形式发送数据,而是他们根据API文档要求的格式。我的表单代码如下所示: <form id="register_form" action="https://https://url.com/users/regist
<form id="register_form" action="https://https://url.com/users/register" method="post">
<input type="text" pattern="[A-Za-z]{1,20}" placeholder="Name" name="name" title="Up to 20 alphabetical characters" required>
<input type="email" placeholder="Email" name="email" title="Must be a valid email address" required>
<input type="password" pattern="[a-zA-Z0-9-]+{8,20}" placeholder="Password" name="password" title="Must be 8 or more characters long and contain at least one number and one uppercase letter" required>
<input type="text" pattern="[a-zA-Z0-9-]+" placeholder="Homeadress" name="homeadress">
<input type="text" placeholder="Postnumber" name="postnumber">
<input type="text" placeholder="City" name="city">
<br>
<button value="Submit" type="submit">Register</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"</script>
<script type="text/javascript">
$('register_form').on('submit', function(event){
var obj = $('register_form').serializeJSON();
$.ajax({
type: 'POST',
url: 'https://url.com/users/register',
dataType: 'json',
data: JSON.stringify(obj),
contentType : 'application/json',
success: function(data) {
alert(data)
}
});
return false;
});
</script>
登记
我一直在尝试的脚本如下所示:
<form id="register_form" action="https://https://url.com/users/register" method="post">
<input type="text" pattern="[A-Za-z]{1,20}" placeholder="Name" name="name" title="Up to 20 alphabetical characters" required>
<input type="email" placeholder="Email" name="email" title="Must be a valid email address" required>
<input type="password" pattern="[a-zA-Z0-9-]+{8,20}" placeholder="Password" name="password" title="Must be 8 or more characters long and contain at least one number and one uppercase letter" required>
<input type="text" pattern="[a-zA-Z0-9-]+" placeholder="Homeadress" name="homeadress">
<input type="text" placeholder="Postnumber" name="postnumber">
<input type="text" placeholder="City" name="city">
<br>
<button value="Submit" type="submit">Register</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"</script>
<script type="text/javascript">
$('register_form').on('submit', function(event){
var obj = $('register_form').serializeJSON();
$.ajax({
type: 'POST',
url: 'https://url.com/users/register',
dataType: 'json',
data: JSON.stringify(obj),
contentType : 'application/json',
success: function(data) {
alert(data)
}
});
return false;
});
</script>
这里有几个问题
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"</script>
missing greater than symbol ^
登记
非常感谢!我修复了输入错误,并尝试使用ajax注释,在控制台中以JSON的形式获取数据。您是否看到我的ajax代码中有任何重大错误,因为当我取消注释它时,我从站点上得到了相同的错误?或者,这是否意味着问题在于其他方面,因为我可以清楚地看到,在您的示例中,它将表单数据转换为JSON?@paranoid AJAX看起来不错,稍后我将在本地系统上测试它,以确保。一定是别的东西。检查字段名的拼写<例如,代码>家庭地址可能需要拼写家庭地址
。记住字段名也是区分大小写的。哦,我错过了有一个请求格式规范的部分。你能把它放在gist上并给我发一个链接吗?我用restlet试过了,api接受这种形式的数据,所以我不认为是拼写问题,如果你有时间在自己的pc上测试,我可以pm你api的url,这是一个学校项目,我不想将其他组的api链接分享给每个人。我下载了一些浏览器扩展,它似乎可以工作,我需要与处理后端的组交谈,所以我不需要扩展。非常感谢你的帮助!