![](/img/trans.png)
[英]Post request without reloading page and support for no javascript (Node Express framework)
[英]Express GET request not reloading page
我正在尝试向客户端发送下一个 HTML 页面(create.html)作为对使用 fetch 的 GET 请求(由按钮触发)的响应。 由于格式问题和潜在的未来缩放问题,我有意避免使用表单。 该代码记录了请求的发送、接收和响应,但它根本不会用它重新加载页面。 *res.redirect 也不起作用。 我在下面附上了我的代码。 JavaScript:
app.get('/', function(req, res) {
console.log(`[00]: Get request recieved at '/'`);
res.sendFile('public/start.html' , { root : __dirname});
})
app.get('/login', function(req, res) {
console.log(`[01]: Get request recieved at '/login'`);
res.sendFile('public/login.html' , { root : __dirname});
})
app.get('/create', function(req, res) {
console.log(`[02]: Get request recieved at '/create'`);
res.sendFile('public/create.html' , { root : __dirname});
})
HTML:
<html>
<head>
<meta charset="utf-8">
<title>HOME PAGE</title>
</head>
<body>
<h1 id='title'>Welcome User!</h1>
<h2>Select an option bellow!</h2>
<button id="btnToLogin">Login</button>
<button id="btnToCreate">Create Account</button>
<p>-ADMIN PANEL-</p>
<button id="btnDisplay">Display Database</button>
<button id="btnTruncate">Truncate Database</button>
<p id='displayText' >[displayText]: Nothing seems to be here...</p>
<script src="start.js"></script>
</body>
</html>
HTML JavaScript:
// Gets elements from start.html
var btnToLogin = document.getElementById('btnToLogin');
var btnToCreate = document.getElementById('btnToCreate');
var btnDisplay = document.getElementById('btnDisplay');
var btnTruncate = document.getElementById('btnTruncate');
var displayText = document.getElementById('displayText');
btnToLogin.addEventListener('click', function() { fetch('/login', { method: 'GET' }) });
btnToCreate.addEventListener('click', function() { fetch('/create', { method: 'GET'}) });
我已经删除了大部分代码,对于我认为的问题来说是不必要的。 一切都需要正确并设置服务器。 如果它很重要,我已经附上了文件结构的图片。 谢谢。 文件结构
Fetch
在后台执行并获取数据。 res.redirect
重定向请求。 您正在通过 fetch 发送请求。 不是地址栏。 为此,您需要使用location.href
而不是 fetch
btnToLogin.addEventListener('click', function() { location.href = '/login' });
btnToCreate.addEventListener('click', function() { location.href = '/create' });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.