thk*_*ang 59 python ajax jquery flask
我在从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);
});
Run Code Online (Sandbox Code Playgroud)
从代码中,data
是一个像javascript的对象
{
'foo' : 'foo',
'bar' : 'bar',
'fo_' : 42,
}
Run Code Online (Sandbox Code Playgroud)
我想在烧瓶中做的是:
@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)
Run Code Online (Sandbox Code Playgroud)
请参阅,ajax请求已生成但未提交任何数据.我console.log(data)
使用ajax,所以我可以看到我data
在jquery 中的变量中确实有一些有意义的数据.但是ajax视图中的request.form是空的.我的数据在哪里提交?
pha*_*tar 66
尝试
$.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);
}
});
Run Code Online (Sandbox Code Playgroud)
然后从服务器,您可以像这样引用数据中的变量:
request.json['foo']
Run Code Online (Sandbox Code Playgroud)
由于内容类型是application/json
在数据所在的情况下指定的request.json
Ift*_*han 13
根据您的示例,您不是发送键值对,而是将JSON字符串分配给jQuery数据选项.如你有你的字符串化JSON的评论中提到,创建一个密钥(将用于从烧瓶访问JSON字符串),然后将其分配给jQuery的数据键的对象.
$.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']
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
52904 次 |
最近记录: |