我有一個簡單的忘記密碼的功能,當用戶請求更改密碼時,他會收到帶有令牌的電子郵件並點擊它的電子郵件,他將被重定向到一個將採用新密碼的頁面。res.redirect在頁面呈現數據後不起作用
我所做的是當我點擊電子郵件中的一個鏈接時,服務器獲取請求並且一個函數將數據從鏈接中提取出來,並用數據渲染頁面(使用res.render),然後它應該重定向到渲染頁。
我面臨的問題是當我點擊鏈接時,我正在獲取數據和頁面呈現,但我不能讓res.redirect()工作。
我的鏈接看起來像這樣
http://localhost:3000/api/resetpassword?_csrf=ab8aa6a41567f817330e3e0a214725f8b2f88b487d5bef16f162e033c6a63dc41933511ddb79cb44ca049f472b3e0c593dbbaf&email=dummyEmail%2540dumyurl.ca
然後我用app.get得到服務器的請求()。
app.get('/api/resetpassword', Admin.resetPasswordPage);
我的渲染和重定向功能看起來像這樣;
resetPasswordPage: function (req, res, next) {
req.query.email = decodeURIComponent(req.query.email) ;
res.render('resetPassword', {
Email: req.query.email,
Csrf : req.query._csrf,
}, function (err, html) {
console.log("TESTING HTML ", html);
if (!err)
res.redirect("/resetPassword");
});
}
渲染是成功的,因爲我得到的HTML參數頁面的完整的HTML,但問題是如何重定向到該頁面。該頁面在EJS及其視圖文件夾中創建。
所以當我從URL中刪除/ api時,它將我正確地重定向到頁面,但網頁不是加載器在瀏覽器中出現錯誤 '此網頁有重定向循環' –
嗨蘇爾曼,我還在一個像你的忘記密碼功能。你有我可以參考的git嗎? – LaneLane