对于Flask View的JSON"POST"不起作用

ceb*_*bor 16 python jquery post json flask

我想通过POST将一些JSON发送到我的Flask View.

这是我的代码

JS:

$.post('/blog/add/ajax',
  { "title": "hallo", "article": "test" },
  function(data) {
    console.log(data.title);
    console.log(data.article);
  },
  "json"
);
Run Code Online (Sandbox Code Playgroud)

潘岳:

@app.route('/blog/add/ajax', methods=['POST', 'GET'])
def add_blog_ajax():
    if request.method == 'POST':
        title = request.json['title']
        article = request.json['article']
        blog = Blog(title, article)
        db.session.add(blog)
        db.session.commit()
        return jsonify(title=title, article=article)
Run Code Online (Sandbox Code Playgroud)

错误:

TypeError: 'NoneType' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做,这里出了什么问题.

ceb*_*bor 19

好的我有一个解决方案:

$.ajax({
  type: "POST",
  contentType: "application/json; charset=utf-8",
  url: "/blog/add/ajax",
  data: JSON.stringify({title: 'hallo', article: 'test'}),
  success: function (data) {
    console.log(data.title);
    console.log(data.article);
  },
  dataType: "json"
});
Run Code Online (Sandbox Code Playgroud)

这对我有用!

  • 请注意,指定了“ contentType”。 (2认同)