我的客户端代码:
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="form.css" />
</head>
<body>
<form action="/login" method="post" class="form">
<input type="text" name="txt" class="txt" id="txt" placeholder="name" />
<input type="submit" class="submit" id="submit" />
</form>
<script defer src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
let submit = document.querySelector(".submit");
const form = document.querySelector(".form");
form.addEventListener("submit", (e) => {
e.preventDefault();
const formData = new FormData(form);
const formObject = {};
formData.forEach((value, key) => {
formObject[key] = value;
});
console.log(axios.defaults)
axios
.post("http://localhost:8080/login", formObject)
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
});
</script>
</body>
</html>
我的服务器端代码:
const app = express();
const path = require("path");
app.use(express.static('./public',{index:'form.html'}));
app.use(express.urlencoded({extended:true}));
app.post('/login',(req,res)=>{
//const txt = req.body;
console.log('logged data: ',req.body);
res.send('Thanks');
})
app.listen(8080, () => {
console.log('server is running...in port 8080')
});
首先,请记住,我是后端新手.当我try sole.log记录记录的数据时,它将返回一个空对象.我不明白为什么req.Body返回一个空对象,但当我try 通过在form标记内提供操作:"/LOGIN"和METHOD:"POST"来执行同样的操作时,它会按预期工作,并给出我提供的输入.请谁帮帮我,我的头都快烧焦了,提前谢谢你.