请求nodejs模块不支持一些url的redirect

我正在使用请求nodejs模块来获取一个网站的HTML,但不是一些redirect网站的工作如下:

var request = require('request'); var options = { url: "http://www.amwasia.com", headers: {'user-agent': 'node.js'}, rejectUnauthorized: false, followAllRedirects: true }; request(options, function (error, response, body) { if (!error && response.statusCode == 200) { console.log("body>>>>>>"+body) } else { console.log("error>>>>>>>>>" + error); console.log("response statusCode>>>>>>>>>" + response.statusCode); console.log("response body>>>>>>>>>" + response.body); } }); 

这给了我这个输出

身体>>>>>>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta HTTP-EQUIV="REFRESH" content="0; url=http://www.amwmotors.com/"> </head> <body> </body> </html> 

这不是准确的HTML。

这个网站正在redirect到这个页面http://www.amwmotors.com/

我的另一个例子是网站: http : //www.pmat.or.th ,并redirect到http://www.pmat.or.th/main/

这也没有给出正确的输出。

我也试过没有followAllRedirects:真正的选项。

请帮忙?

如果你可以login你的body var:

 if (!error && response.statusCode == 200) { console.log("body>>>>>>"+body) } 

,这是因为你收到一个200状态码,这不是一个redirect。 如果您通过浏览器testing了urlwww.amwasia.com并被redirect,则通过html <meta>标签完成:

 <meta HTTP-EQUIV="REFRESH" content="0; url=http://www.amwmotors.com/"> 

通过请求模块,似乎你得到了200 ,而不是3xx