Это простая задача, но до сих пор я не могу ее решить, поэтому я хочу спросить вас всех.
Я использую nodejs и простой html / jquery для создания простого восстановления пароля. Все работает нормально: электронное письмо отправлено, форма пароля открывается, пароль обновляется в базе данных, но когда пароль подтвержден, он должен перенаправить на страницу успеха. Но это отображается на экране:
Cannot POST /update_pass_get/update_pass_confirm.html
Это возобновленный код:
Маршрут для отправки электронного письма:
const url = `${process.env.IP_ADDRESS_PORT}/update_pass_get/?email=${req.body.email}`;
const mailOptions = {
from: 'Localizamed <no-reply@localizamed.com.br>',
to: req.body.email,
subject: 'Recuperação de senha',
html: `<html>
<body>
<h1> I AM HERE </h1>
<a href="${url}"> CLICK ON ME</a>
</body>
</html>`
}
transporter.sendMail(mailOptions, (erro, info) => {
return res.status(201).send({ message: 'SENT' })
});
Путь для отправки файла
usuarioRouter.get('/update_pass_get', async (req, res, next) => {
return res.sendFile(path.join(__dirname + '/../public/index.html'))
});
**HTML + Jquery файл **
<script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
$(document).ready(function () {
document.getElementById("btn-publicar").addEventListener("click", function (event) {
var formData = new FormData();
var senha = document.dados.senha.value;
var confirmaSenha = document.dados.confirmaSenha.value;
var ip = `ip_and_server-port`
formData.append("senha", senha);
formData.append("confirmaSenha", confirmaSenha)
var xhr = new XMLHttpRequest();
var urlString = window.location.href;
var url = new URL(urlString);
var email = url.searchParams.get("email");
if (senha == confirmaSenha) {
xhr.open("PUT", `${ip}/update_pass/${email}`);
xhr.send(formData);
}
});
});
</script>
<body>
<form action="update_pass_confirm.html" method="POST">
</body>