我正在编写一个非常简单的演示webapp,似乎无法使用ajax将json对象从js传递到python。
我已经尝试了很多类似问题的人的建议,比如使用.get_json()
而不是.json
,在javascript中不使用JSON.stringify
传递对象,等等
你知道我缺了什么吗?
Javascript
var run_method = function(){
var data1 = {"word":"hello"}
console.log("Before " + data1);
$.ajax({
url : "/examplemethod",
type : "POST",
data : data1//JSON.stringify(data1)
})
.done(function(data){
var data = JSON.parse(data);
console.log(data);
});
}
Python
@app.route("/examplemethod", methods=['POST', 'GET'])
def example_method():
global data
if request.method == 'POST':
print request
data = request.json
print "data", data
return "after "+ data["word"]
我尝试过的每一种变化都会产生500的误差,并且
TypeError: 'NoneType' object has no attribute 'getitem'
显然,这是因为数据应该是dictionary/json
,而不是None
。但我怎么才能把它作为字典归还呢?
因为您没有向flask应用程序发送JSON(请参见this和this)。您当前的代码生成标准的urlencoded表单post。从而导致在
request.form
中填充一个条目按照上述Q&as中的指南切换到json post,以便通过request.json访问数据。
相关问题 更多 >
编程相关推荐