Node.js登录表单POST请求返回404错误,路径配置问题排查求助
问题原因与修复方案
核心错误:Express服务端POST路由定义不符合规范
Express的路由注册方法app.post()第一个参数仅需填写路径部分,不需要携带完整的域名+端口前缀,你当前写的app.post('http://localhost:3000/client', ...)属于无效路由规则,服务端无法匹配到前端发来的POST /client请求,因此返回404错误。
具体修改步骤
修改
server.js中的POST路由规则
把原有代码:app.post('http://localhost:3000/client', (req, res) =>{替换为:
app.post('/client', (req, res) =>{如果你想用之前注释掉的router写法也可以,替换为
router.post('/client', (req, res) =>{效果完全一致。修复
client.html中附带的小问题(避免后续报错)- 关闭按钮的函数调用写错,将
onclick="close-Form()"修改为onclick="closeForm()",和你定义的JS函数名保持一致,否则点击关闭按钮会触发JS报错。 - 删掉末尾错误的server.js引入代码
<script>src="/server.js"</script>,server.js是服务端运行的代码,不需要在前端引入,避免前端加载资源报错。
- 关闭按钮的函数调用写错,将
可选优化
可以把client.html中form标签的action="http://localhost:3000/client"修改为相对路径action="/client",后续服务部署到其他域名时不需要再修改前端代码。
修改完成后重启Node服务,重新提交登录表单即可正常捕获请求数据,不会再报404错误。
内容的提问来源于stack exchange,提问作者user16617036
相关产品推荐
相关产品推荐

