Flask中的Ajax POST请求

时间:2017-06-30 20:13:13

标签: javascript jquery python ajax flask

我尝试使用AJAX接收包含用户输入表单数据的POST请求,但我一直在返回错误。我几乎逐字地跟踪this tutorial

这是我的代码:

views.py

@app.route('/table_data', methods=['POST'])
def table_data():
    user_id = request.form['userID']
    name = request.form['name']
    return user_id, name    #of course I'll return something more meaningful in the future

datapage.html

<script type="text/javascript" src="app/static/js/submit.js"></script>
<form action="{{ url_for('table_data') }}" class="form-inline" method="post"
        role="form" enctype="application/json">
    <input type="text" class="form-control" id="userID" placeholder="4-Character ID">
    <input type="text" class="form-control" id="name" placeholder="Name">
    <button type='submit' class="btn btn-default">Submit</button>
</form>

submit.js

$(document).ready(function() {
    $('form').on('submit', function(event) {
        $.ajax({
            data: {
                userID: $('#userID').val(),
                name: $('#name').val()
            },
            type: 'POST',
            url: '/table_data'
        })
    event.preventDefault();
    });
});

我的控制台正在返回&#34; GET /app/static/js/submit.js HTTP / 1.1&#34; 404&#34;,即使我知道submit.js的路线是正确的。

我是JavaScript / jQuery的新手。对菜鸟有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

将解决方案从问题转移到答案:

  

<强> SOLUTION:

     

首先,感谢@reptilicus解决.js文件中的404错误(请参阅注释)。之后我在浏览器窗口中遇到“错误请求”错误消息(400),因为我的HTML输入参数不包含“名称”。我将 name =“userID” name =“name”添加到HTML脚本中的标记中,然后运行。