14

我有一个这样的数据结构:

在此处输入图像描述

我尝试通过 $.ajax 将其发送到服务器:

$.ajax({
    type: 'POST',
    data: post_obj, //this is my json data
    dataType: 'json',
    url: '',
    success: function(e){
       console.log(e);
    }
});

我想通过烧瓶把它放在服务器上:title = request.form['title'] 工作正常!

但我怎么得到content

request.form.getlist('content')不起作用。

这是萤火虫中的帖子数据:

在此处输入图像描述

非常感谢 :D

4

2 回答 2

17

您正在发送编码为查询字符串而不是 JSON 的数据。Flask 能够处理 JSON 编码的数据,所以这样发送更有意义。以下是您需要在客户端执行的操作:

$.ajax({
    type: 'POST',
    // Provide correct Content-Type, so that Flask will know how to process it.
    contentType: 'application/json',
    // Encode your data as JSON.
    data: JSON.stringify(post_obj),
    // This is the type of data you're expecting back from the server.
    dataType: 'json',
    url: '/some/url',
    success: function (e) {
        console.log(e);
    }
});

在服务器端数据通过request.json(已经解码)访问:

content = request.json['content']
于 2013-02-26T11:36:30.010 回答
2

如果您检查 jQuery 提交的 POST,您很可能会看到它content实际上是作为content[]. 要从 Flask 的request对象访问它,您需要使用request.form.getlist('content[]').

如果您希望它通过 as content,您可以添加traditional: true到您的$.ajax()通话中。

有关这方面的更多详细信息,请参见http://api.jquery.com/jQuery.ajax/的“数据”和“传统”部分。

于 2013-02-26T03:33:33.020 回答