Node.js提交表单后控制台可打印数据但页面持续加载如何解决
问题原因
HTTP协议中每次请求都需要对应返回响应,你当前的Express服务端POST路由逻辑仅执行了控制台打印操作,没有向客户端返回任何响应也没有结束请求,浏览器提交表单后会一直等待服务端响应,因此出现持续加载的状态。
解决方案
只需要在POST路由的处理逻辑末尾,根据你的业务需求调用Express提供的响应方法结束请求即可,常用方案有以下几种:
- 方案1:返回文本/HTML内容给前端展示
app.post('/', function(request, response){ console.log(request.body.user.name); // 自定义返回的内容 response.send('表单提交成功'); });
- 方案2:提交完成后跳转到指定页面
app.post('/', function(request, response){ console.log(request.body.user.name); // 可替换为任意你需要跳转的路径 response.redirect('/success.html'); });
- 方案3:仅结束请求不需要返回内容
app.post('/', function(request, response){ console.log(request.body.user.name); response.end(); });
如果是前后端分离的接口场景,可以返回JSON格式的响应:
app.post('/', function(request, response){ console.log(request.body.user.name); response.json({ status: 'success', message: '提交成功' }); });
内容的提问来源于stack exchange,提问作者Vojta Simek
相关产品推荐
相关产品推荐

