节点js上的http GET请求出现问题

use*_*459 8 http node.js

我正在编写一个http客户端,使用node.js从Facebook读取并使用以下代码:

var http = require('http');

var options = {
  host: 'www.fb.com',
  path: '/',
  "user-agent": "node.js"
};

http.get(options, function(res) {
  console.log("Got response: " + res.statusCode);
  console.log(res.headers);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
Run Code Online (Sandbox Code Playgroud)

在我的浏览器中,这将返回301重定向,其中包含www.facebook.com的位置,但是在node.js中,我获得了302响应,其位置为www.fb.com/common/browser.php.我尝试使用最新版本的节点,它仍然会抛出此错误.

我真的很感激这方面的帮助,谢谢.

小智 26

var request_options = 
{
    host: 'www.fb.com',
    headers: {'user-agent': 'Mozilla/5.0'},
    path: '/'
};
Run Code Online (Sandbox Code Playgroud)

以这种方式设置请求选项应该有效.


meg*_*rre 3

这似乎是node.js 的一个错误,我在curl 中向fb.com 发出了请求,并且得到了相同的重定向。

它可能根据用户代理做出这个决定......也许你可以使用浏览器的用户代理:D