我正在编写一个非常简单的演示web应用程序,并且似乎无法使用ajax将json对象从js传递到python。
我已经尝试了许多有关类似问题的建议,例如使用.get_json()代替.json,传递对象而不JSON.stringify在javascript中使用等。
知道我在这里缺少什么吗?
Java脚本
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);
});
}
Run Code Online (Sandbox Code Playgroud)
蟒蛇
@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"]
Run Code Online (Sandbox Code Playgroud)
我尝试过的每个变化都会带来500 Error,并且
TypeError:“ NoneType”对象没有属性“ getitem ”
显然,这是因为数据应该是dictionary/json,而不是None。但是,如何获得它作为字典返回呢?
因为您没有发送JSON,所以将其发送到flask应用程序(请参阅this和this)。您当前的代码会产生标准的urlencoded表单发布。反过来导致条目被填充到request.form
request.form.get('word')
Run Code Online (Sandbox Code Playgroud)
按照上述问答中的指南切换到json帖子,以通过request.json访问数据。