为什么我的烧瓶应用程序可以';从javascript接收json吗?
我尝试将json数据从JavaScript发送到flaskapp。但是flask不接受从JavaScript发送的json数据,请求为null,错误在哪里 这是我的密码为什么我的烧瓶应用程序可以';从javascript接收json吗?,javascript,python,json,flask,Javascript,Python,Json,Flask,我尝试将json数据从JavaScript发送到flaskapp。但是flask不接受从JavaScript发送的json数据,请求为null,错误在哪里 这是我的密码 @main.route('/getjson', methods = ['GET', 'POST']) def getjson(): a = request.json return jsonify(user = a) 这是我的javascript代码 $(function(){ $("#test").cl
@main.route('/getjson', methods = ['GET', 'POST'])
def getjson():
a = request.json
return jsonify(user = a)
这是我的javascript代码
$(function(){
$("#test").click(function(){
$.ajax({
url: "{{ url_for('main.getjson') }}",
type: "POST",
data: JSON.stringify({
"n1": "test1",
"n2": "test2",
"n3": "test3"
}),
dataType: "json",
success: function(data){
var a = data.user
var texthtml = "<p>" + a + "</p>"
$("#result").html(texthtml)
}
});
});
});
$(函数(){
$(“#测试”)。单击(函数(){
$.ajax({
url:“{url_for('main.getjson')}}”,
类型:“POST”,
数据:JSON.stringify({
“n1”:“test1”,
“n2”:“test2”,
“n3”:“test3”
}),
数据类型:“json”,
成功:功能(数据){
var a=data.user
var texthtml=“”+a+”“
$(“#结果”).html(texthtml)
}
});
});
});
页面上返回的数据始终为空。
Request.arg.get也不起作用。Flask的
Request.json
需要application/json
内容类型,但$。默认情况下,ajax
设置application/x-www-form-urlencoded
。在发出请求时设置内容类型
$.ajax({
url: "{{ url_for('main.getjson') }}",
type: "POST",
data: JSON.stringify({
"n1": "test1",
"n2": "test2",
"n3": "test3"
}),
contentType: "application/json",
dataType: "json",
success: function(data){
var a = data.user
var texthtml = "<p>" + a + "</p>"
$("#result").html(texthtml)
}
});
这将以表单编码的形式发送数据,因此您可以使用Flask中的request.form
读取数据
dataType
是您希望从服务器接收的数据类型,而contentType
是您发送到服务器的数据类型
见:
- (部分:内容类型)
$.ajax({
url: "{{ url_for('main.getjson') }}",
type: "POST",
data: {
n1: "test1",
n2: "test2",
n3: "test3"
},
dataType: "json",
success: function(data){
var a = data.user
var texthtml = "<p>" + a + "</p>"
$("#result").html(texthtml)
}
});