0

ここでばかげたことをしているのかもしれませんが、何らかの理由で、私にとって完全に有効な 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)

引数をログに記録すると、空のImmutableMultiDictオブジェクトが取得されるだけなので、感情の呼び出しはまだ失敗しています。ここで何が起こっているのか正確に知っている人はいますか?

4

1 に答える 1

1

request.argsURL で提供されるパラメーターです。Flask のrequestオブジェクトには、 POST された.formデータを含む属性が含まれているためrequest.form、AJAX リクエストを介して送信されたデータにアクセスするために使用する必要があります。

@app.route('/facedata/<slug>', methods=["POST"])
def facedata(slug):
    emotions = request.form.get('emotions')
于 2013-08-05T12:31:26.077 に答える