Node.jsのリクエストモジュールを使用してサーバーをリクエストするウェブクライアントを開発しています。送信されるリクエストはPOSTリクエストです。サーバーは、Expressを使用してNode.jsで記述されています。プロキシとして機能し、Node.jsで記述されたサーバーにリクエストをリダイレクトするNGINXの別のレイヤーがあります。
問題は次のとおりです。ヘッダーを明示的に定義せずにリクエストを送信しようとすると、NGINXはcontent-length、#411(長さが必要)のhtmlエラーを送信します。一方、ブラウザとカールを使用して同様のリクエストを送信しようとすると、すべてが正常に機能します。サンプルコードは次のとおりです。
request.post(url, function(err, response, data) {
if(err) {
console.log(err);
} else {
console.log(data);
}
}).form({'data':'someValue'})
さらに、リクエストのヘッダーにcontent-lengthを追加すると、NGINXがハングし、NGINXはさらにデータが到着するのを待っているようです。NGINXはリクエストをサーバーに転送しません。
content-lengthを含めるために追加されたオプション
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'});
リクエストの送信で何が間違っていますか?