Tengo un script de frontend que toma un valor de un botón HTML y lo pasa al backend. Funciona bien, excepto que si se hace clic repetidamente en el botón para enviar un montón de solicitudes POST al backend, solo pasan unas siete u ocho antes de que el resto aparezca como Pendiente en la inspección de elementos del navegador.
¿Es esto un problema con el código, o se espera que sea algún tipo de mecanismo de filtrado de puertos en la red?
Interfaz:
async function submitCity(){ let x = document.getElementById("wg_input").value; console.log("Successfully captured city name:", x); let toWeather = JSON.stringify({city: x}); console.log("Input data successfully converted to JSON string:", toWeather); const options = { method: 'POST', mode: 'cors', headers: {'Content-Type': 'application/json'}, body: toWeather } fetch('http://localhost:3000', options) .then(res => console.log(res)) .catch(error => console.log(error)) }Servidor.js:
// Dependencies const express = require('express'); const bp = require("body-parser"); const request = require("request"); const jimp = require('jimp'); const cors = require('cors'); const wgServer = express(); const port = 3000; // Dotenv package require("dotenv").config(); // OpenWeatherMap API_KEY const apiKey = `${process.env.API_KEY}`; // Basic server initialization wgServer.use(cors()) wgServer.use(bp.json()) wgServer.use(bp.urlencoded({ extended: true })) wgServer.listen(port, function() { console.log(`Example app listening on port ${port}!`) }); wgServer.post('/', async function (req, res) { res.set('Content-Type', 'text/plain'); console.log(req.body); let preclean = req.body; console.log(preclean); //const data = await req.body; // let jsonData = JSON.stringify(req.body); // res.status(201); //res.json(); });Este es el navegador que pone en cola esas solicitudes hasta que finaliza una de las anteriores.
Los navegadores tienen un límite en la cantidad de solicitudes simultáneas que enviarán al mismo host. Una vez que alcanza ese límite, ponen en cola las solicitudes posteriores hasta que finaliza una de las solicitudes anteriores, momento en el que enviarán la siguiente en la cola.
Esto no tendría nada que ver con el filtrado en la red.