Javascript 快速不重定向

Javascript 快速不重定向,javascript,node.js,express,redirect,post,Javascript,Node.js,Express,Redirect,Post,无法从管理员登录重定向到管理员页面,但在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.

无法从管理员登录重定向到管理员页面,但在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页面的状态代码是200,但它没有重定向,它只发送数据并停留在admin登录页面上

<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
            }),
        });

它是重定向,你只是不看结果

重定向就是你在HTTP中说的:“你想要的东西可以在这个URL上找到”

浏览器已使用
fetch
请求URL。它被告知可以从不同的URL获取数据。它自然而然地遵循了这一点。它得到了答复。然后浏览器将该响应返回给JavaScript。你什么都不做

忽略
fetch
的返回值(这是一个允许查看数据的承诺)

重定向并不意味着“在主浏览器窗口中导航到新页面”。您使用
fetch
请求数据,您必须使用
fetch
的返回值处理响应

如果要登录并导航到新页面,请使用常规表单提交。不要使用Ajax


Ajax用于在不离开当前页面的情况下发出HTTP请求的情况下,尝试发送状态代码为301的重定向

    res.sendStatus(301).sendFile(path.join(__dirname, '..', 'public', 'admin_page', 'admin-page.html'));


那么,为了让代码正常工作,我应该在代码中做些什么呢?@AndrijaGajic-正如我所说的,使用常规表单提交而不是Ajax(并在服务器上添加一个主体解析器,可以处理为表单设置的
enctype
)。
// 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;
    res.sendStatus(301).sendFile(path.join(__dirname, '..', 'public', 'admin_page', 'admin-page.html'));