表单提交Job信息存库异常:数据暴露在URL而非写入数据库
嘿,我一眼就瞅到问题所在啦!你遇到的情况是表单默认用了GET方法提交,所以数据才会被拼到URL里,而且后端的create接口应该是期望接收POST请求的(毕竟curl脚本能成功,说明接口是POST类型)。下面是具体的修复步骤:
修改表单的提交方法为POST
给你的表单标签加上method="POST"属性,这样表单数据就会放在请求体里,而不是URL参数中,后端接口才能正确接收。示例代码:<form action="/api/jobs" method="POST"> <!-- 你的表单输入项 --> <input type="text" name="URL"> <button type="submit">提交</button> </form>确认表单的
action属性指向正确接口
要确保action的值和你curl脚本里请求的接口地址一致,比如你curl用的是POST http://localhost:7165/api/jobs,那表单的action就设为/api/jobs,不然表单会提交到当前页面,导致无效请求。检查后端是否支持解析表单格式请求体
如果你curl脚本是用JSON格式发数据的,后端可能只配置了解析JSON的中间件,但表单默认发送的是application/x-www-form-urlencoded格式的数据。比如在Express.js里,要添加express.urlencoded({ extended: true })中间件,这样才能正确读取表单字段值。用开发者工具排查请求细节
打开浏览器F12的「网络」标签,查看表单提交的请求:检查请求方法是不是POST、请求体里有没有带表单数据、后端返回的状态码和响应内容是什么——哪怕页面没报错,这里可能藏着后端接收数据时的问题。
按照这些步骤调整后,表单提交的数据应该就能正常被后端接收并存入数据库,返回对应的Job ID啦!
内容的提问来源于stack exchange,提问作者SarahBurke

