当前位置: 首页 > 知识库问答 >
问题:

使用ajax提交表单时出错

松锐藻
2023-03-14

当我提交post方法表单时,给定输入字段值,提交时不获取。如果我在Jquery中使用Ajax调用,那么表单值将序列化并正确提交,但是在javascript中,使用FormData的Ajax调用会出错。

谁能解决我的问题。

错误:

>

  • 错误:不能设置报头后,他们被发送。OutgoingMessage.set头(_http_outgoing.js:356: 11)

    阿波罗模型拯救未设置键:主键字段:名称必须有一个值

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form id="myForm" method="post" action="">
        <div>
            <label for="name">Enter name:</label>
            <input type="text" id="name" name="name">
        </div>
        <div>
            <label for="surname">SurName:</label>
            <input type="text" id="surname" name="surname">
        </div>
        <div>
            <label for="age">Age:</label>
            <input type="text" id="age" name="age">
        </div>
        <input type="submit" value="Submit!"  onclick="loadForm()">
    </form>
    <p id="demo"></p>
    
    <script>
        function loadForm() {
            var xhttp = new XMLHttpRequest();
            var myForm = document.getElementById('myForm');
            var formData = new FormData(myForm);
    
            xhttp.onreadystatechange = function () {
                if (this.readyState == 4 && this.status == 200) {
                    document.getElementById("demo").innerHTML =
                            this.responseText;
                }
            };
            xhttp.open("POST", "http://127.0.0.1:8080/user", true);
            xhttp.setRequestHeader('Accept', 'application/json');
            xhttp.setRequestHeader('Content-Type', 'application/json');
            var data = JSON.stringify(formData);
            console.log('data = ', data);
            xhttp.send(data);
        }
    </script>
    </body>
    </html>
    
  • 共有1个答案

    傅宏恺
    2023-03-14

    您不会停止表单的默认提交,因此当有人单击submit按钮时,表单将正常提交,也可以使用Ajax进行提交。解决方案是将侦听器绑定到表单提交并防止默认行为。

    试试这个:

    document.querySelector("#myForm").addEventListener("submit", function (event) {
        event.preventDefault();
        // ... Ajax call here ...
    })
    
     类似资料:
    • 问题内容: 我正在尝试使用jquery将值提交到数据库。我是ajax的新手,但是我必须使用ajax。 到目前为止,这是我已经完成的PHP代码 我的html代码是 这是我使用jQuery的ajax 我不知道我在做什么错。任何帮助将不胜感激 问题答案: 与其干扰表单的Submit事件,不如点击事件。要对现有设置进行最小的更改,只需将点击处理程序添加到表单提交按钮。处理程序中的第一件事是调用e.prev

    • 问题内容: 我正在尝试使用AJAX技术添加评论,但出现错误: 这是我的代码:View: 控制器: AJAX: 最后一条路线: 任何人都知道问题出在哪里,为什么我不能提交表格? 问题答案: 您没有发布任何数据, 您得到的错误是DB中的列不能为空。 尝试将您的ajax调用更改为此: 改变这个 至 并获取消息和帖子ID: 完成ajax块: 最后,在隐藏字段中添加一个ID: 从Laravel控制器发送回数

    • Framework7 可以通过ajax自动提交 有两种自动提交方式: 当用户提交了表单 (点击了提交按钮) 或者当通过代码触发了 "submit" 事件 当用户更改了表单的内容,或者当通过代码触发了 "change" 事件 submit时提交表单数据 只需要添加 "ajax-submit" class 在form上,当submit时就会自动通过ajax发送表单数据 <form action="se

    • 问题内容: 看起来这应该是jQuery内置的东西,不需要多行代码,但是我找不到“简单”的解决方案。说,我有一个HTML表单: 当有人更改选择字段时,我想使用ajax提交表单以更新数据库。我认为可以通过以下方式来执行以下操作,而无需手动创建值/属性,只需将它们全部发送即可,例如: 我想念什么? 问题答案: 这就是最终的工作。

    • 问题内容: 我试图使用此示例使用AJAX提交HTML表单。 我的HTML代码: 我的剧本: 这是行不通的,我什至没有收到警告消息,提交时我不想重定向到另一个页面,我只想显示警告消息。 有简单的方法吗? PS:我有几个领域,我仅举两个例子。 问题答案: AJAX快速描述 AJAX只是异步JSON或XML(在大多数新情况下为JSON)。因为我们正在执行ASYNC任务,所以我们很可能会为我们的用户提供更

    • 问题内容: 我是stackoverflow和CodeIgniter的新手,目前正在尝试在Internet上找到的一些简单代码示例,以开始使用。我现在正在处理的是一种使用CI和Ajax(jQuery)的表单,并将表单的输入保存在数据库中,然后在表单的同一页上显示最新的表单。如果我感到困惑,那是这里的4.7应用示例。最初的源代码位于此处,但为了与最新版本的CI配合使用,我对其进行了修改,并在下面引用了