我尝试通过POST请求发送用户名和密码来尝试通过节点进行身份验证,因为登录表单似乎是这样做的。使用Postman进行试用时效果很好,我已重定向到我的信息中心。
遗憾的是,用户名和密码字段未标记为用户名和密码,而是标记为j_username和j_password。
这是邮递员给我看的数据(仅供参考):
POST /path/for/auth/request HTTP/1.1
Host: site.com
Cache-Control: no-cache
Postman-Token: b6656210-caeb-2b62-d6b6-e10e642b200b
Content-Type: application/x-www-form-urlencoded
j_username=myusername&j_password=mypassword
所以我在节点中尝试这个:
var request = require('request');
request.post({
headers: {'content-type' : 'application/x-www-form-urlencoded'},
url: 'https://site.com/path/for/auth/request',
body: "j_username=myusername&j_password=mypassword"
}, function(err, res, body){
console.log(body);
});
但不幸的是它回来了,错误被设置为空。
这里可能出现什么问题?或者有更好的方法来使用此资源进行身份验证吗?至于我可以通过标题告诉Basic Auth在这里是不可能的。
感谢。
答案 0 :(得分:2)
该网站可能会向您发送HTTP 302重定向,因此这被视为成功,这就是为什么没有错误,但也没有响应机构,这就是为什么它&# 39; s"空"。您将要查看statusCode以及响应中的Location
标头。