Здравствуйте, моя текущая задача - отправить данные на сервер и прочитать из URL с помощью req.params, но проблема в том, что я использую ajax и не могу настроить действие формы для правильной отправки на определенный URL, и это вызывает ошибку маршрутизации. в форме URL /: токен , но я не знаю, как решить эту проблему. так что я хотел бы, чтобы вы поняли, вот код:
(У меня есть конфигурация для / Forgot-Password в index.js, поэтому мне не нужно указывать его в URL
ФОРМА:
<form action="/forgot-password/reset/:token" method="POST" id="idform">
<input type="password" name="password" placeholder="New password">
<input type="password" name="confirm_password" placeholder="Confirm password">
<input type="submit" value="Submit">
</form>
AJAX:
<script>
$(document).ready(()=>{
var $form = $('form#idform');
$form.on('submit', (e)=>{
e.preventDefault();
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: $form.serialize(),
error: (xhr,textStatus,error)=>{
try{
const r = JSON.parse(xhr.responseText);
if(r.message){
$('#err').html(r.message)
}
}catch(error){
$('#err').html(xhr.responseText)
}
},
success: (res)=>{
window.location.replace(res.r)
}
})
})
})
</script>
NodeJS:
router.post('/reset/:token', (req,res)=>{
async.waterfall([
(done)=>{
User.findOne({resetPasswordToken: req.params.token, resetPasswordExpirationDate: {$gt: Date.now()} }, (err,user)=>{
if(err){
return res.status(500).send({message: err.message})
}
console.log(user)
})
}
])
})
спасибо, если найдете решение