Flask中服务器端怎样接受ajax发送的json?

js代码如下:
functionajaxForm(){
$.ajax({
type:'post',
//contentType:"application/json;charset=UTF-8",
url:$SCRIPT_ROOT,
dataType:'json',
data:{
'n1':$('input[name=n1]').val(),
'n2':$('input[name=n2]').val(),
'n3':$('input[name=n3]').val(),
},
error:function(xhr,err){
alert('请求失败,原因可能是:'+err+'!')
},
success:function(data,textStatus){
$('#max').text(data.max);
$('#min').text(data.min);
}
});
returnfalse
}
服务端只能用request.form.get()得到数据,request.get_json()却是None,改变contentType也是一样的,这是怎么回事呢?
我想应该是URL的问题$SCRIPT_ROOT={{request.script_root|tojson|safe}}是空的
怎样设置URL才能让进入服务view函数内呢?
ibeautiful
浏览 426回答 2
2回答

九州编程

虽然已经过了两年了,题主肯定不需要了,但是还是为将来可能要踩这个坑的同学答一下你的ajax采用“post”方法,但是没有告诉后端传递参数contentType:'application/json;charset=UTF-8',这样就告诉后端才用的是json格式,你的datatype其实是希望后端返回的数据格式!但是这样设置后也只有request.get_data有数据(),request.get_json()还是得不到数据,这时候需要设置data:JSON.stringify()也就是楼主找到的方法。

UYOU

pythonrequest.form['n1']request.form.get('n1')request.form.get('n1','default')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript