我有:
page1
:提交表单
page2
:验证它并返回页面
现在,当我单击后退按钮时,它不会转到第1页,而是带有"确认表单重新提交"窗口。
如何防止这种情况?基于this answer,我认为这是一种推荐的方法:
这是论坛上的常用技巧。 Page1上的表单将数据发布到 Page2,Page2处理数据并完成需要完成的工作 然后它自己进行HTTP重定向。这样最后的行动"该 浏览器记住第2页上的简单GET,因此表单不存在 在F5上重新提交。
但我很困惑。我应该在哪里附加我的重定向?我的page2
视图如下所示:
@app.route('/StartPage',method='POST')
def test():
username = request.forms.get('username')
password = request.forms.get('password')
return template('StartPage',search_string=search_string,\
username=username, \
session_id=ses_id)
答案 0 :(得分:1)
要遵循POST-Redirect-GET模式,您的POST
路由不应返回模板。
如果它可以成功处理表单数据,那么它应该在之后 重定向到某种成功/下一页。
如果出现验证错误,则应重定向回到表单,可能包含查询字符串中包含的错误详情。