Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将表单数据发布为JSON?_Javascript_Jquery_Html_Ajax_Forms - Fatal编程技术网

Javascript 如何将表单数据发布为JSON?

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

我正在尝试为我们正在进行的一个小组项目建立一个注册站点,但不知道如何将表单数据作为json发送。我已经尝试了很多谷歌搜索和修改代码,但似乎没有任何效果。我遇到的问题是,当我按下submit按钮时,API会出现如下错误:

{“”:[“输入无效。”]}

我认为原因是我的表单不以JSON的形式发送数据,而是他们根据API文档要求的格式。我的表单代码如下所示:

<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链接分享给每个人。我下载了一些浏览器扩展,它似乎可以工作,我需要与处理后端的组交谈,所以我不需要扩展。非常感谢你的帮助!