如何在flask中使用从ajax发布的数据? [英] how can I use data posted from ajax in flask?

查看:44
本文介绍了如何在flask中使用从ajax发布的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法从 jquery ajax 获取数据.

I'm having trouble getting data POSTed from jquery ajax.

$('#clickme').click( function() {
    var data = save_input(); // data

    data['_sid'] = $survey_id;  // survey_id injected from flask
    data['_uip'] = $user_ip; // user_ip injected from flask, request.remote_addr

    $.ajax({
        type : "POST",
        url : "{{ url_for('mod.load_ajax') }}",
        data: JSON.stringify(data),
        contentType: 'application/json;charset=UTF-8',
        success: function(result) {
            console.log(result);
        }
    });

    console.log(data);
});

从代码来看,data是一个javascript对象,如

from the code, data is a javascript object like

{
    'foo' : 'foo',
    'bar' : 'bar',
    'fo_' : 42,
}

我想在烧瓶中做的是:

@mod.route('/load_ajax', methods=["GET", "POST"])
def load_ajax():
    if request.method == "POST":
        # load _sid and _uip from posted JSON and save other data
        # but request.form is empty.
        # >>> request.form
        # ImmutableMultiDict([]) 
        return str(request.form)

看,ajax请求发出了,但是没有提交数据.我用ajax做console.log(data),所以我可以看到我在jquery的data变量中确实有一些有意义的数据.但是 ajax 视图中的 request.form 是空的.我的数据在哪里提交?

see, the ajax request is made but no data is submitted. I do console.log(data) with ajax so I can see that I really have some meaningful data in data variable in jquery. but request.form in ajax view is empty. Where is my data submitted?

推荐答案

尝试

 $.ajax({
    type : "POST",
    url : "{{ url_for('mod.load_ajax') }}",
    data: JSON.stringify(data, null, '	'),
    contentType: 'application/json;charset=UTF-8',
    success: function(result) {
        console.log(result);
    }
});

然后从服务器,你可以像这样引用数据中的变量:

Then from the server, you can refer to the variables in data like this :

request.json['foo']

由于内容类型被指定为 application/json,所以数据在 request.json

Since the content type is specified as application/json the data is in request.json

这篇关于如何在flask中使用从ajax发布的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆