修复接收Ajax数据时的“错误请求”

时间:2019-04-01 14:07:59

标签: python flask

简而言之,我正在使用Ajax从SelectField(WTFORMS)发送数据来动态更新其他SelectField选择。

在两种情况下,我都尝试将数据作为默认值或json发送失败。

这是我尝试过的最终代码:

在jinja2模板中:

[...]
<th width="20%">{{ studsubreg.sub }}</th>
[...]
<script type="text/javascript" src="/static/js/jquery.min.js"></script>
    <script type="text/javascript">
$(document).ready(function(){

    $("select#studsubreg-sub").change(function() {



            var subid = $(this).find('option:selected').text();
            {#var subid=$(this).val();#}

            $.ajax({
                type: 'GET',
                data: { 'sid': subid},
                url: "{{ url_for('getcourse') }}",
                contentType: 'application/json;charset=UTF-8',
                success: function(response) {
                }
            });


    });
});


</script>

在Flask中:(仅用于测试输出是否正常工作)

@app.route('/getcourse', methods=['GET'])
@login_required
def getcourse():
    subid = request.json['sid']
    print(subid)

我总是收到错误400错误的请求 我只想获取subid值,以便可以返回结果以填充其他SelectField。

非常感谢

1 个答案:

答案 0 :(得分:1)

尝试request.args.get('sid')

您只是使用Ajax来获取参数之一。

还删除contentType: 'application/json;charset=UTF-8'