我正在开发一个网络客户端,它使用Node.js 的请求模块请求服务器。发送的请求是 POST 请求。服务器是使用 Express 用 Node.js 编写的。NGINX 的另一层充当代理并将请求重定向到用 Node.js 编写的服务器。
问题是:每当我尝试发送请求时,在没有明确定义任何标头的情况下,NGINX 都会发送内容长度的 html 错误,#411(需要长度)。然而,当我尝试使用浏览器和 curl 发送类似的请求时,一切正常。示例代码如下:
request.post(url, function(err, response, data) {
if(err) {
console.log(err);
} else {
console.log(data);
}
}).form({'data':'someValue'})
此外,现在当我将 content-length 添加到请求的标头时,NGINX 挂起,似乎 NGINX 正在等待更多数据到达。NGINX 不会将请求转发到服务器。
添加选项以包括内容长度
var dataObj = {'data' = 'someValue'};
var options = {
'uri' = url
, 'headers' = {
'Content-Length' = JSON.stringify(dataObj).length
}
};
request.post(options, function(err, response, data) {
if(err) {
console.log(err);
} else {
console.log(data);
}
}).form({'data':'someValue'});
我在发送请求时做错了什么?