我无法获取数据从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);
- });
从代码中,数据是一个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请求,但没有提交数据。我做控制台(数据)与ajax所以我可以看到,我真的有一些有意义的数据在数据变量在jquery。但是在ajax视图中的request.form是空的。我的数据在哪里提交?
解决方法
尝试
- $.ajax({
- type : "POST",data: JSON.stringify(data,null,'\t'),success: function(result) {
- console.log(result);
- }
- });
然后从服务器,你可以参考数据中的变量,如下所示:
- request.json['foo']
由于内容类型被指定为application / json,所以数据在request.json中