【问题标题】:Ajax Post Request with Flask使用 Flask 的 Ajax 发布请求
【发布时间】:2019-09-08 17:18:46
【问题描述】:

我正在使用 AJAX 向 Flask 路由发送 POST 请求,但我不知道如何以我可以阅读的格式获取发布数据。

我的路线是这样的:

@app.route("/sendinvites", methods=["POST"])
@login_required
def sendinvites():
    print(request.get_data("emails"))
    return jsonify("done")

我的 AJAX 看起来像:

$.ajax({
    type: "POST",
    dataType: "json",
    url: "/sendinvites",
    data: { emails : emails, usernames: usernames  },
    success: function(data) {
      console.log(data)
    }
  });

在 emails 变量中发送的数据示例如下:

0: Object { id: undefined, username: "me@mydomain.com" }

路由输出的一个例子是:

b'emails%5B0%5D%5Busername%5D=me%40mydomain.com'

有谁知道如何将帖子数据放入字典对象中以便更容易处理?

【问题讨论】:

    标签: ajax python-3.x flask


    【解决方案1】:

    有很多方法可以做到这一点,但首先,验证请求是否包含有效的 JSON。

    1. request.get_json()
    request.get_json(silent=True)
    

    设置silent=True 后,get_json 函数将在尝试检索 JSON 正文时静默失败。默认设置为False

    1. jsonify(request.json)

    这将返回整个request 对象。您必须通过在 ajax 代码中发送 request 时指定发布的密钥来提取所需的部分。

    请参考 Flask 部分,thread

    关于 Ajax 部分请参考这里,thread

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      相关资源
      最近更新 更多