我有一个带有Express(v4.17.1)的Angular和NodeJS应用程序。我公开了这样的REST API:
app.get('/myRestApi', function (req, res)
{
console.log('here you are ... ');
res.end('success!\n');
});
并且body
此API的包含以下参数:
{"name":"Joe",
"surname":"Soap",
"coordinate":"ASNDNFNS;SDFGSDFGSDF;ASFRTGERG;SERFQEAWE"}
问题是,当我收到的coordinate
字段大于一定数量(那么很多ASFRTGERG;SERFQEAWE
)时,我在浏览器上收到错误(无论浏览器如何):
The server responded with a status of 400 (Bad Request).
因为没有得到console.log('here you are ... ');
日志,所以我想NodeJS将其丢弃并返回400。我很确定NodeJS会像在浏览器中一样返回此日志:
HTTP/1.1 400 Bad Request
Access-Control-Allow-Origin: *
Content-Length: 0
Connection: keep-alive
X-Powered-By: Express
Strict-Transport-Security: max-age=31536000
****更新****
我已经在NodeJS上设置了DEBUG级别,并且请求从未到达后端,所以我认为问题出在Angular方面。在“角度”一侧的某一点上,我这样做:
window.location.href = this.url; //this.url = /myRestApi
导航到/myRestApi
URL。我认为window.location.href
机制在这里出现了问题,因为此请求的主体的一个字段(请参见上文)太大,然后崩溃了?...或导致400的原因。
有什么建议吗?
我发现了问题,问题是发送到后端的HTTP GET太大。经过更深入的分析,我发现cookie对我的情况产生了巨大的影响。
我已经通过增加最大HTTP标头大小来修复它:
node --max-http-header-size 21000 application.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句