Python Flask request.json不返回任何类型,而返回json字典

2024-05-29 11:04:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个非常简单的演示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。但我怎么才能把它作为字典归还呢?


Tags: 对象logjsondatarequestvarajaxfunction
1条回答
网友
1楼 · 发布于 2024-05-29 11:04:32

因为您没有向flask应用程序发送JSON(请参见thisthis)。您当前的代码生成标准的urlencoded表单post。从而导致在request.form中填充一个条目

 request.form.get('word')

按照上述Q&as中的指南切换到json post,以便通过request.json访问数据。

相关问题 更多 >

    热门问题