注册页面异常:点击注册跳转至本地C盘而非传输数据至Hyper Terminal
注册按钮跳转本地C盘问题解决
核心问题分析
点击注册后跳转到C盘,本质是表单提交的目标路径错误,导致浏览器直接访问本地文件路径,而非发送请求到后端服务。结合常见代码问题,给出以下针对性解决方案:
1. 修正HTML表单的提交目标
检查表单action属性,若设置为本地路径或为空(浏览器默认跳转到当前文件路径),就会触发本地目录跳转。
- 正确配置表单
action为后端接口路径:
<form action="/register" method="POST"> <!-- 用户名、密码等表单字段 --> <button type="submit">注册</button> </form>
- 若使用AJAX异步提交,必须阻止表单默认跳转行为:
const registerForm = document.querySelector('form'); registerForm.addEventListener('submit', function(e) { e.preventDefault(); // 阻止页面跳转 // 收集表单数据 const formData = new FormData(this); // 发送请求到后端 fetch('/register', { method: 'POST', body: formData }) .then(response => response.json()) .then(result => { console.log('注册结果:', result); // 添加注册成功后的提示或页面跳转逻辑 }) .catch(error => console.error('注册出错:', error)); });
2. 确保后端服务正确接收请求
检查app.js是否配置了对应POST路由,且服务正常启动:
const express = require('express'); const app = express(); // 解析表单提交的编码数据 app.use(express.urlencoded({ extended: true })); // 注册接口路由 app.post('/register', (req, res) => { // 终端会打印收到的注册数据 console.log('收到注册请求:', req.body); // 添加实际注册逻辑(如写入数据库) res.send({ success: true, message: '注册成功' }); }); // 启动服务,监听3000端口 app.listen(3000, () => { console.log('服务已启动:http://localhost:3000'); });
3. 正确访问页面
必须通过http://localhost:3000访问页面,不能直接双击打开本地HTML文件(file://协议),否则浏览器无法正确识别后端接口路径。
内容的提问来源于stack exchange,提问作者Tejas Mete
相关产品推荐
相关产品推荐

