Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

223
Visualizações
{ Nodejs - Express } ¡Solicitud de envío del lado del cliente dos veces! Cómo detener este error

¡Solo estoy aprendiendo nodejs pero este error me mata por dentro! Mi sitio web sigue solicitando dos veces cada método de publicación que tenemos. Al principio, pensé que era mi error en relación con mongodb, pero estaba equivocado, esto sucede con todos los métodos POST que tengo en mi sitio web (excepto la función de inicio de sesión).

Método POST de filtrado de red

Ejemplo: Mi función de comentario

Lado del cliente

 $('.commentSubmit').click(e => { e.preventDefault() let commentContent = $('#Comment').val() let postId = $('#input-comment').val() $.ajax({ url: '/dashboard/postComment', type: 'POST', data: { postId: postId, comment: commentContent } }) .done(data => { let htmlcomment = ` <li class="list-group-item mt-3" id="${data._id}"> <h6 class="card-title" >${data.Owner} <p class="card-text"><small class="text-muted">${data.createAt} </small></p> </h6> <h6 class="card-subtitle mb-2 text-muted"></h6> <p class="card-text" >${data.content} </p> <div class="card-footer text-muted" style="text-align: right;"> <button type="button" id="commentdelete" data-id="${data._id}" class="btn btn-danger btn-sm commentdelete">Delete</button> </div> </li>` $(`ul#${postId}ulul`).prepend(htmlcomment) document.getElementById('Comment').value = '' }) })

Servidor

 router.post('/postComment', (req, res) => { console.log('done') req.connection.setTimeout( 1000 * 60 * 10 ) if(req.session._id) { if(!req.body.comment || !req.body.postId) { return res.render('dashboard',{errors: 'Input comment first', user: u, posts: post, comments: comment, notifs: notif}) } let comment = req.body.comment let postId = req.body.postId User.findOne({_id: req.session._id}) .then(u => { user = u }) console.log(req.url) Posts.findOne({_id: postId}) .then(p => { if(!p) res.send('PostID NOT Valid') let comment = new Comments({ content: req.body.comment, Owner: user.name, PostId: postId }) comment.save(); return res.json(comment) }) } else { return res.redirect('/login') }

})

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que tiene un formulario en su lado del cliente y un botón con la clase .commentSubmit.

atrapa el evento de clic e intenta evitar el comportamiento predeterminado. cambie el tipo de botón de envío de enviar a botón:

 <button type="button">save</button>

por lo tanto, el botón no enviará su formulario, pero el código js hará la publicación de ajax por usted. el predeterminado de prevención funcionará en el evento form.sumbit si captura el evento form.onsubmit.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda