Nodejs/Expressjs POST 请求受限 - 受本地主机防火墙/安全策略影响?
Nodejs/Expressjs POST requests limited — affected by localhost firewall / security policies?
我有一个前端脚本,它从 HTML 按钮获取一个值并将其传递到后端。它工作得很好,除了如果重复单击按钮向后端发送一堆 POST 请求,只有大约七八个通过,其余显示为 Pending 在浏览器的元素检查中。
这是代码问题,还是网络中的某种端口过滤机制?
前端:
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))
}
Server.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();
});
这是浏览器排队这些请求,直到前面的请求之一完成。
浏览器对同时向同一主机发送请求的数量有限制。一旦达到该限制,他们就会对后续请求进行排队,直到之前的请求之一完成,此时他们将发送队列中的下一个请求。
这与网络过滤无关。
我有一个前端脚本,它从 HTML 按钮获取一个值并将其传递到后端。它工作得很好,除了如果重复单击按钮向后端发送一堆 POST 请求,只有大约七八个通过,其余显示为 Pending 在浏览器的元素检查中。
这是代码问题,还是网络中的某种端口过滤机制?
前端:
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))
}
Server.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();
});
这是浏览器排队这些请求,直到前面的请求之一完成。
浏览器对同时向同一主机发送请求的数量有限制。一旦达到该限制,他们就会对后续请求进行排队,直到之前的请求之一完成,此时他们将发送队列中的下一个请求。
这与网络过滤无关。