Jquery/Ajax表单POST向我的API提交空的

2024-04-29 06:04:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用Jquery&Ajax向我的API提交一个由flaskrestplus&Python提供支持的表单时遇到了一些问题。当我从CURL运行API或使用swagger时,它的工作方式与预期一样,但是当我尝试使用Jquery/Ajax将表单提交到同一个端点时,我没有从表单提交中获得任何数据。在

这是HTML/Jquery

<form name="login" id="login">
<input type="text" name="email" id="email">
<input type="password" name="password" id="password">
<button type="submit">Submit</button>
</form>

</body>
<script>
$("#login").submit(function(e) {

    var url = "/auth/login_user"; //

    $.ajax({
           type: "POST",
           url: url,
           data: $("#login").serializeArray(), // I've tried serializeArray() & serialize()
           success: function(data)
           {
               alert(data);
           }
         });

    e.preventDefault(); 
});
</script>

当我在浏览器中检查代码时,它看起来像是在发送表单数据,但是当我在控制台中从python函数打印它时,我可以看出我得到的是一个None类型。在

任何帮助都将不胜感激。我知道我可以使用Jquery.val似乎每一个元素的解决方法都是正确的。在


Tags: 数据nameformapiidurl表单input
1条回答
网友
1楼 · 发布于 2024-04-29 06:04:29

对于任何有这个问题的人。。这似乎是flaskrestplus/Flask在ajax帖子中采用的方式。不确定到底发生了什么,但我确实找到了解决方法,使用这个Jquery lib;https://github.com/marioizquierdo/jquery.serializeJSON

我的代码是这样的。。在

    <script>
$("#login").submit(function(e) {

    var url = "/auth/login_user";
    var form_data = $('#login').serializeJSON();

    console.log(form_data)

    $.ajax({
           type: "POST",
           url: url,
           contentType: 'application/JSON',
           data: JSON.stringify(form_data),
           success: function(data)
           {
               alert(data); // 
           }
         });

    e.preventDefault(); 
});
</script>

相关问题 更多 >