【问题标题】:JQuery ajax - how to send JSON with GET method?JQuery ajax - 如何使用 GET 方法发送 JSON?
【发布时间】:2021-04-21 11:17:58
【问题描述】:

我正在尝试将一些数据从 JQuery.ajax() 发送到我的 python Flask 服务器,JS 代码是:

let data = JSON.stringify({nickname: "AAA", password: "BBB"});
$.ajax({
    async: true,
    data: data,
    dataType : "json",
    contentType: "application/json",
    method: "GET",
    url: "/test_back",
    success: function() {},
    error: function() {}
});

Python 代码是:

@app.route("/test_back", methods=["GET", "POST"])
def test_back():
    print(request)
    data = request.get_json()
    print(data)
    return jsonify({})

print(data) 正在控制台中写入None,所以我无法将其作为字典读取。 当我将method: "GET" 更改为method: "POST" 时,它工作得很好。

那么:如何正确地使用 GET 方法将 JSON 从 JQuery 发送到 Flask?

【问题讨论】:

  • 使用 GET 将数据作为搜索参数发送到 url。为什么要在 GET 中发送 json?
  • 我正在尝试制作一个 RESTful API,我认为客户端也应该将 JSON 发送到服务器。对不对?
  • 我认为您应该研究 GET 和 POST 在发送数据方面的工作方式之间的差异。虽然 json 可以在 GET 搜索参数中发送,但通常不需要

标签: python jquery ajax flask get


【解决方案1】:

首先为烧瓶方法添加条件获取并发布其良好实践:D

         if request.method == "POST":
         if request.method == "GET":

也尝试返回数据而不是空 jsonfy

return data 

不是

return jsonify({})_

【讨论】:

  • 我将它添加到其他页面,而不是“/test”:D .json 也返回 None D:
  • 你为什么返回空 jsonify 你应该只返回数据你应该删除返回 jsonify({}) 并只返回它没有意义的数据
猜你喜欢
  • 2012-06-12
  • 2017-08-16
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多