【问题标题】:AJAX request is empty on receiptAJAX 请求在收到时为空
【发布时间】:2013-08-06 03:41:23
【问题描述】:

我可能在这里做了一些愚蠢的事情,但由于某种原因,对我来说似乎是一个完全有效的 ajax 请求不起作用。

这是 AJAX 请求:

data = {emotions: lRes};
console.log(data); //Data seems to be exactly what I'm looking for
$.ajax({
    type: "POST",
    data: data,
    url: document.location.origin + "/facedata/" + slug,
    success: function(){
        console.log("Success!");
    }
});

然后在AJAX请求的接收端:

@app.route('/facedata/<slug>', methods=["POST"])
def facedata(slug):
    if request.method == "POST":
        try:
            post = Post.objects.get_or_404(slug=slug)
            print request.args
            sys.stdout.flush()
            data = request.args.get("emotions")
            post.face_data.append(data)
            post.save()
        except:
            traceback.print_exc(file=sys.stdout)

当我记录 args 时,我只得到一个空的 ImmutableMultiDict 对象,所以情绪调用仍然失败。有人知道这里到底发生了什么吗?

【问题讨论】:

  • @JonClements 我觉得自己很傻,但非常感谢您回答这个问题。你能把这个作为答案让我接受吗?

标签: python ajax post flask


【解决方案1】:

request.args 是 URL 中提供的参数。 Flask 的 request 对象包含一个包含 POST 数据的 .form 属性 - 因此您必须使用 request.form 来访问通过 AJAX 请求发送的数据,例如:

@app.route('/facedata/<slug>', methods=["POST"])
def facedata(slug):
    emotions = request.form.get('emotions')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-07
    • 2015-09-18
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2017-03-22
    相关资源
    最近更新 更多