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

327
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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