Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

322
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda