0

はい、これが他の質問と似ていることは知っていますが、Brython の構文と関数は大きく異なるため、ここではその解決策を適用できません。

Ajax で投稿を成功させた後、Web ページが Flask の指示にリダイレクトされません。最初のコード スニペットの print ステートメントが実行され、HTML から値が出力されます。Flask のデバッグにより、success.html に対する get 要求 (リダイレクト) があったことがわかりますが、Web ページはリダイレクトされません。これが私のコードです:

@app.route("/test", methods=["POST", "GET"])
def testing():
    if request.method == "POST":
        print(request.values["test"])
        return redirect(url_for("success"))
    else:
        return render_template("test.html")

そしてHTML:

<!DOCTYPE html>
<html lang="en">
    <meta charset="UTF-8">
    <title>Testing</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython_stdlib.js"></script>
    <body onload="brython()">
        <script type="text/python">
            from browser import ajax
            ajax.post(url="{{ url_for('testing') }}", data={"test": "this is a test"})
        </script>
    </body>
</html>

コンソールからのデバッグは次のとおりです。

127.0.0.1 - - [14/May/2021 18:31:08] "GET /test HTTP/1.1" 200 -
this is a test
127.0.0.1 - - [14/May/2021 18:31:10] "POST /test HTTP/1.1" 302 -
127.0.0.1 - - [14/May/2021 18:31:10] "GET /success HTTP/1.1" 200 -

正常にリダイレクトするにはどうすればよいですか?

4

1 に答える 1