表单提交按钮无法发起POST请求:提交仅修改URL未触发视图函数
问题原因及解决方法
核心问题
你的表单未指定提交目标地址和请求方法,浏览器默认会以GET请求提交到当前页面URL,导致仅修改URL参数,并未触发后端视图的POST请求逻辑。
修复步骤
修改前端表单代码,补充action和method属性:
<form class="form-inline my-2 my-lg-0" action="/search" method="POST"> <input class="form-control mr-sm-2" type="search" placeholder="Search" id="query" name="query"/> <button class="btn btn-outline-primary my-2 my-sm-0" type="submit"><i class="bi bi-search"></i></button> </form>
关键说明
action="/search":指定表单提交到后端的/search路由(如果你的auth蓝图设置了url_prefix比如/auth,这里要改为/auth/search)method="POST":明确使用POST请求提交,匹配后端视图函数中methods=['GET', 'POST']的处理逻辑
额外验证点
如果修改后仍异常,可检查:
- 后端
auth蓝图的注册配置,确保路由路径与表单action完全一致 - 浏览器开发者工具的网络面板,确认请求方法和目标地址是否符合预期
内容的提问来源于stack exchange,提问作者jin
相关产品推荐
相关产品推荐

