我正在嘗試使用 fetch 向客戶端發送下一個 HTML 頁面 (create.html) 作為對 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'}) });
我已經洗掉了大部分代碼,只是對于我認為的問題沒有必要。一切都需要正確并且服務器已設定。以防萬一我附上了檔案結構的圖片。謝謝。 檔案結構
uj5u.com熱心網友回復:
Fetch在后臺執行并獲取資料。res.redirect重定向請求。您通過 fetch 發送請求。不是地址欄。為此,您需要使用location.href而不是 fetch
btnToLogin.addEventListener('click', function() { location.href = '/login' });
btnToCreate.addEventListener('click', function() { location.href = '/create' });
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/396775.html
標籤:javascript html 表达 得到 拿来
