Estoy tratando de usar ajax para enviar datos del lado del cliente al lado del servidor sin actualizar la página.
Estoy usando este código ajax dentro de mi archivo pug:
script. $(function() { $('#form1').submit(function(event) { event.preventDefault(); var form = $(this); $.ajax({ type: form.attr('method'), url: form.attr('action'), data: {form.serialize()} }); }); });Estoy usando la misma URL y el método (que es POST).
Archivo de enrutador: -
const express = require("express"); const main_controller = require("../../controllers/main-controller"); const router = express.Router(); router.post('/form', main_controller.Send); module.exports = router;Archivo del controlador: -
const data_model = require('../../models/data-model'); exports.Send = (req, res, next) => { data_model.find((err, data) => { res.render("./customer/form1", { pageTitle: "Form1", data: data }); }); };Quiero filtrar los datos que estoy enviando arriba. En el formulario, tengo cuadros desplegables en los que estoy mostrando los datos, cuando el usuario selecciona algo, estoy enviando la opción que eligió al servidor. En el servidor, estoy filtrando datos según la opción que se seleccionó. Quiero enviar los datos filtrados al lado del cliente, pero no puedo.
En jQuery, puede usar la devolución de llamada success o la resolución de promesa .done para acceder a los datos enviados por el servidor para su posterior procesamiento. Por favor, eche un vistazo a la documentación [1] para obtener más ejemplos sobre cómo hacer esto.