关于Ajax发布到Flask:Ajax发布到Flask – json

Ajax post to Flask - json

本问题已经有最佳答案,请猛点这里访问。

我有一个在客户端自动完成的谷歌地图查找-我正试图在用户选择后将"place"对象转移到服务器上-我可以在客户端解析它,但我觉得在服务器端更容易。我从浏览器"网络"中验证了它是否通过正确的JSON对象发送,但是服务器端我不能得到正确的对象。我试过各种各样的请求,我能找到,要么一个也得不到,要么一个我知道不对的

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function sendplace() {
    $('placebutton').click(function() {
        var add1 = place;
        console.log(place);
        $.ajax({
            url: '/new_place2',
            data: JSON.stringify(place),
            contentType: 'application/json;charset=UTF-8',
            type: 'POST',
            success: function(response) {
                console.log(response);
            },
            error: function(error) {
                console.log(error);
            }

和服务器端:

1
2
3
4
5
@app.route('/new_place2', methods=['GET', 'POST'])
def new_place2():
    place = request.form.get('place')
    print"address:", place
    return ("Success, (*&)er!")


你应该使用request.get_json()。request.form是为mimetype application/www-form-urlencoded保留的。如果get_json()不起作用,请查看request.data,确保可以在上面运行以下内容:

1
2
3
4
import json

data = json.loads(request.data)
data.get('place')

如果这不起作用,您的JSON可能有问题。