node.js - XMLHttpRequest, get header informations

断了今生、忘了曾经 提交于 2019-12-21 20:54:06

问题


I want to get the headers of the website "http://facebook.com". This should be a 302 Moved Permanently and I want to call the referred link which is provided in the response header.

Here is my code:

var req = new XMLHttpRequest();
req.open('GET', "http://facebook.com/", false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
console.log(headers);

And here is the error message:

/home/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:230
for (var i in response.headers) {

TypeError: Cannot read property 'headers' of undefined
    at getAllResponseHeaders (/home/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:230:27)
    at Object.<anonymous> (/home/browse/init.js:67:19)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

I hope you can help me.


回答1:


The following code should be sufficient, as per the comment, you don't need XHR.

var http = require('http');

var options = {
  hostname: 'www.google.com',
  port: 80,
  method: 'GET'
};

var req = http.request(options, function(res) {
  console.log('headers:\n' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('body:\n' + chunk);
  });
});

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});
req.end();



回答2:


If you want to use xmlHttpRequest with Node js you have to install required package.

First, write this line in a console:

npm install xmlhttprequest

Then, when you write a .js file on your server , you have to indicate first

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();


来源:https://stackoverflow.com/questions/25652057/node-js-xmlhttprequest-get-header-informations

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!