【发布时间】:2020-11-08 14:18:25
【问题描述】:
无法从 admin-login 重定向到 admin-page,但在 express cmd log 上会记录:
a1
a2
Correct
POST /admin-login 302 9.469 ms - 54
GET /admin-login? 304 5.112 ms - -
GET /admin-page 200 10.198 ms - 4428
GET /stylesheets/admin-login-style.css 304 1.772 ms - -
GET /javascripts/admin-login.js 304 13.267 ms - -
表示如果用户名是a1密码是a2进入了条件检查,adming-page的状态码是200,但是它不是重定向,它只发送数据并停留在admin-login页面上
<div class="container">
<h1>Welcome</h1>
<form class="form">
<input type="text" placeholder="Username" id="username">
<input type="password" placeholder="Password" id="password">
<button type="submit" id="login-button">Login</button>
</form>
</div>
// frontend
fetch('http://localhost:8080/admin-login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: username.value,
password: password.value
}),
});
const express = require('express');
const router = express.Router();
const path = require('path');
router.get('/', (req, res) => res.sendFile(path.join(__dirname, '..', 'public', 'admin_login', 'admin-login.html')));
router.post('/', (req, res) => {
console.log(req.body.username);
console.log(req.body.password);
if (req.body.username === 'a1' && req.body.password === 'a2') {
console.log('Correct');
return res.redirect('http://localhost:8080/admin-page');
} else {
console.log('Not logged in');
return res.redirect('back');
}
});
// backend which gets the data
module.exports = router;
// admin panel page
const express = require('express');
const router = express.Router();
const path = require('path');
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
username: String,
password: String
});
const User = mongoose.model('users', userSchema);
router.get('/', (req, res) => {
res.sendFile(path.join(__dirname, '..', 'public', 'admin_page', 'admin-page.html'));
});
module.exports = router;
【问题讨论】:
标签: javascript node.js express redirect post