Python Flask-request.json返回None类型而不是json字典

Bri*_*n C 1 python json flask

我正在编写一个非常简单的演示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。但是,如何获得它作为字典返回呢?

e4c*_*4c5 6

因为您没有发送JSON,所以将其发送到flask应用程序(请参阅thisthis)。您当前的代码会产生标准的urlencoded表单发布。反过来导致条目被填充到request.form

 request.form.get('word')
Run Code Online (Sandbox Code Playgroud)

按照上述问答中的指南切换到json帖子,以通过request.json访问数据。