Flask中GET请求正常但POST失效,请求仍以GET方式发送
Flask POST请求被转为GET的问题原因与解决方案
问题原因
从请求日志的GET /doborpompy%20method=?metry=44&...可以明确:前端表单的method属性设置错误。大概率是表单代码里没有正确设置method="POST",反而把method相关内容错误地混入了URL路径或表单参数中,导致浏览器默认使用GET方式提交请求,所有表单参数被拼接到URL后,还出现了无效的method=?字符串,最终触发404错误。
解决步骤
- 打开前端模板
doborpompy.html,找到表单代码,重点检查method和action属性:- 必须确保表单标签包含
method="POST",action设置为当前路径/doborpompy(或留空,默认提交到当前页面路径) - 禁止将
method作为表单input参数,也不要在action中混入method相关内容
- 必须确保表单标签包含
- 正确的表单示例代码:
<form method="POST" action="/doborpompy"> <!-- 示例表单字段 --> <input type="number" name="metry" value="44"> <input type="number" name="metry_ogrzewane" value="44"> <!-- 其他表单字段 --> <button type="submit">提交</button> </form>
- 验证修复效果:重新提交表单后,请求日志应显示
POST /doborpompy HTTP/1.1,参数通过请求体传递,而非拼在URL中,此时后端的POST分支逻辑会正常执行。
内容的提问来源于stack exchange,提问作者Robert Wyszynski
相关产品推荐
相关产品推荐

