Tengo una aplicación web creada con node y express, y hay un formulario que quiero enviar en un archivo ejs, pero no puedo usar form.submit() porque quiero pasar parámetros en la URL.
La identificación del formulario es "update" y la identificación de los botones de envío es "btnsubmit" , actualmente estoy tratando de enviar la solicitud de publicación de la siguiente manera:
var form = document.getElementById("update"); document.getElementById("btnsubmit").addEventListener("click", function () { var lp = "1"; window.location = ("/dbinsertupdateditem?loadpage="+encodeURIComponent(lp)); }); Al hacer clic en el botón, aparece el error: Cannot GET /dbinsertupdateditem , porque la ruta expresa espera una solicitud POST. ¿Es posible realizar una solicitud POST con window.location o necesito una forma diferente de resolver esto?
No puede cambiar el funcionamiento de window.location.href. Como resultado, debe publicar un formulario si el enrutador espera que sea una publicación. Si tiene un formulario en la página, puede configurar la acción
var form = document.getElementById("update"); form.action = "/dbinsertupdateditem?loadpage="+encodeURIComponent(lp); form.submit();Si no tiene un formulario, cree uno
var form = document.createElement("form"); form.method = "POST"; form.action = "/dbinsertupdateditem?loadpage="+encodeURIComponent(lp); document.body.append(form); form.submit();O probablemente la mejor respuesta, cambie su backend para permitir GET