how can I use data posted from ajax in flask?
Try
$.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); }});
Then from the server, you can refer to the variables in data like this :
request.json['foo']
Since the content type is specified as application/json
the data is in request.json
As per your example you are not sending a key value pair but rather assigning a JSON string to the jQuery data option. As mentioned in the comments you have to stringify your JSON, create an object with a key (which will be used to access the JSON string from flask) and then assign it to the jQuery data key.
$.ajax({ type : "POST", url : "{{ url_for('mod.load_ajax') }}", data: {json_str: JSON.stringify(data)}, contentType: 'application/json;charset=UTF-8', success: function(result) { console.log(result); } }); @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['json_str'] )