如何使用从Flask中的Ajax发布的数据?

我无法从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对象,例如

{

'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请求,但未提交任何数据。我console.log(data)使用ajax,因此可以看到datajquery 中的变量中确实有一些有意义的数据。但是ajax视图中的request.form为空。我的数据在哪里提交?

回答:

尝试

 $.ajax({

type : "POST",

url : "{{ url_for('mod.load_ajax') }}",

data: JSON.stringify(data, null, '\t'),

contentType: 'application/json;charset=UTF-8',

success: function(result) {

console.log(result);

}

});

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

request.json['foo']

由于指定的内容类型是application/json数据所在的位置request.json

以上是 如何使用从Flask中的Ajax发布的数据? 的全部内容, 来源链接: utcz.com/qa/412273.html

回到顶部