Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

224
Views
{ 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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!