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

320
Views
Error al intentar anular el método POST con PUT (Método no permitido)

Estoy experimentando un problema de "Método no permitido" cuando intento anular mi solicitud POST con PUT (para actualizar la información en mi blog). Ya instalé la anulación del método para koa.

HTML:

 <div class="create-message content"> <form action="/messages/edit/<%= message.id %>?_method=PUT" method="POST"> <label for="title">Message title:</label> <input required value="<%= message.title %>" type="text" id="title" name="title" required> <label for="snippet">Message snippet:</label> <input required value="<%= message.snippet %>" type="text" id="snippet" name="snippet" required> <label for="body">Message body:</label> <input required value="<%= message.body %>" type="text" id="body" name="body" required> <button>Update</button> </form>
Mis rutas son las siguientes:
 //edit message router.get('/messages/edit/:id', async (ctx, next) => { const id = ctx.params.id; const result = await MessageModel.findById(id) await ctx.render('edit', { title: 'Messages', message: result }) });

El código anterior funciona bien, pero después de hacer clic en el botón Enviar, se produce el problema "Método no permitido" en lugar de ejecutar esto:

 //update edited message router.put('/messages/edit/:id', async (ctx, next) => { MessageModel.findByIdAndUpdate(ctx.params.id, ctx.request.body, {new:true}, (err:any, result:any) => { }) return ctx.redirect('/'); });

Por favor comparta sus pensamientos sobre este tema. Gracias

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Asegúrese de agregar lo siguiente a su archivo app.js (index.js).

 app.use(methodOverride('_method'));
about 4 years ago · Juan Pablo Isaza Report

0

No puede establecer el método de formulario en PUT, es GET o POST.

para enviar una solicitud PUT puede usar AJAX, a través de (por ejemplo) la API Fetch

EDITAR: mi mal, usaste el concepto de "tunelización" mencionado en esa solución.

según esta documentación, tal vez intente con

 <form method="POST" action="/resource" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="_method" value="PUT">
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!