我正在制作一個遇到此錯誤的專案。我想做的是根據條件它應該將服務器重定向到特定的路由,但會出現這個錯誤。
routes.post("/check", (req, res) => {
console.log("/check");
// console.log(req.body);
username = req.body.username;
password = req.body.password;
console.log("Step 1");
console.log("Username:", username, "\n", "Password", password);
console.log(public);
for (let i in public) {
if (username === i && password === public[i]) {
console.log("Authenticated success");
res.redirect("/public");
} else {
res.redirect("/404");
}
}
res.redirect("/public");
});
輸出是
/check
Step 1
Username: shivam2
Password 4321
{ shivam2: '4321', arjun2: 'dcba' }
Authenticated success
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
uj5u.com熱心網友回復:
如果身份驗證成功,您應該回傳:
routes.post("/check", (req, res) => {
console.log("/check");
// console.log(req.body);
username = req.body.username;
password = req.body.password;
console.log("Step 1");
console.log("Username:", username, "\n", "Password", password);
console.log(public);
for (let i in public) {
if (username === i && password === public[i]) {
console.log("Authenticated success");
return res.redirect("/public");
}
}
res.redirect("/404");
});
uj5u.com熱心網友回復:
您正在呼叫多個redirects,回圈的每次迭代中都有一個,這會導致錯誤。但是,您根本不需要回圈 - 您可以public[username]直接檢查(為簡潔起見洗掉了日志):
routes.post("/check", (req, res) => {
username = req.body.username;
password = req.body.password;
if (public[username] === password) {
console.log("Authenticated success");
res.redirect("/public");
} else {
res.redirect("/404");
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503954.html
標籤:javascript 节点.js 表示 重定向
