【发布时间】:2021-08-29 11:27:13
【问题描述】:
我有一个网站和一个快速服务器正在运行。 在网站中,用户可以输入他们的用户名和密码。 当他们点击登录按钮时,请求被发送到服务器,请求正文中的用户名和密码作为 JavaScript 对象。
这是网站代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Log In</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Log In</h1>
<div id="i">
<input type="text" name="u" id="u" placeholder="Username">
<input type="password" name="p" id="p" placeholder="Password">
<input type="submit" onclick="login()" value="Log In">
<div id="msg"></div>
</div>
<script src="script.js"></script>
</body>
</html>
JS:
let u = document.getElementById("u");
let p = document.getElementById("p");
let msg = document.getElementById("msg");
let xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log("Server request is ready. Press login to send request.")
}
};
//login function triggered when user clicks login
function login() {
data = {
"username": u.value,
"password": p.value
}
xhttp.open("POST", "SERVER_URL", true);
xhttp.send(data)
}
但在服务器端,请求正文显示为空:
// environment variables
const client = process.env['MAIN_CLIENT'];
// imports
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
//init
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));//app.use(bodyParser);
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.sendFile(`${__dirname}/index.html`)
})
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", client);
next();
});
app.post(`/data`, (req, res) => {
console.log(req.body)
u = req.body.u;
p = req.body.p;
data = process.env;
console.log("----------------")
if (data[u] == p) {
console.log(`\n-/-/-/-/-/-/-/-/-/-/-/-/\nA user just logged in.\nUsername: ${u}\n-/-/-/-/-/-/-/-/-/-/-//-/ \n`)
res.send(true)
}
else{
console.log("no")
res.send(false)
}
});
app.listen(3000, () => {console.log('ready!')});
每当我尝试登录时,它都会将用户名显示为undefined。请求正文显示为{}
此外,变量 CLIENT 是网站 URL。
我是否以错误的方式发送请求?我访问请求正文是否错误?
【问题讨论】:
标签: javascript node.js express request xmlhttprequest