Javascript 向请求HTTP POST节点js中的表单参数发送变量
我正在尝试通过节点js发送HTTP POST请求 这是我的密码:Javascript 向请求HTTP POST节点js中的表单参数发送变量,javascript,node.js,post,Javascript,Node.js,Post,我正在尝试通过节点js发送HTTP POST请求 这是我的密码: var tentativa = "{ id:'" + result.rows[i][0] + "', timestamp:'" + result.rows[i][1]+"', application: '"+ applicationName + "', type:'Log', source: '" + result.rows[i][2] + "', " + string+ " }";
var tentativa = "{ id:'" + result.rows[i][0] + "', timestamp:'" + result.rows[i][1]+"', application: '"+ applicationName +
"', type:'Log', source: '" + result.rows[i][2] + "', " + string+ " }";
request({
uri: "http://localhost:5000/logs",
method: "POST",
form: tentativa,
headers: { 'Content-Type' : 'application/x-www-form-urlencoded' }
}, function(error, response, body) {
console.log(body);
});
当我以表单形式发送“tenativa”变量时,请求将被发送,但不会保存任何内容。但是当我发送“tenativa”变量的输出时,它工作得很好。不应该是相同的吗?这不是有效的json
var tentativa = "{ id:'" + result.rows[i][0] + "', timestamp:'" + result.rows[i][1]+"', application: '"+ applicationName +
"', type:'Log', source: '" + result.rows[i][2] + "', " + string+ " }";
最后一个值缺少key属性,这可能是它不随请求发送对象的原因
由于看起来您想要发送一个简单的json,所以您可以将对象放在主体中
request({
uri: "http://localhost:5000/logs",
method: "POST",
body: tentativa,
json: true,
headers: { "Content-Type": "application/json"}
}
}, function(error, response, body) {
console.log(body);
});
非常感谢你的帮助。
使用javascript对象而不是字符串解决了问题,如@varbrad所说。form属性可能只是一个常规javascript对象,而不是对象的字符串表示形式。
request
库将为您转换它,并将其正确编码为HTTP请求。“…request throw Node.js”您的意思是Node.js正在抛出错误吗?出了什么差错?@borislemke它没有被抛出,而是通过了。对不起,弄错了