是的,我知道这与其他问题相似,但是 Brython 语法和功能有很大不同,以至于它们的解决方案在这里不适用。
在使用 Ajax 成功发布后,网页不会重定向到 Flask 告诉它的内容。第一个代码片段中的 print 语句执行并打印来自 HTML 的值,Flask 调试告诉我有一个成功的 get 请求(重定向),但网页没有重定向。这是我的代码:
@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 -
我应该怎么做才能使它成功重定向?