Node.js - XMLHttpRequest, get header information
I want to get the headers of the website " http://facebook.com ". This should be 302 Moved permanently and I want to trigger the referenced link that is 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
Hope you can help me.
+3
source to share
2 answers
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();
+5
source to share
If you want to use xmlHttpRequest with Node js, you need to install the required package.
First write this line in the console:
npm install xmlhttprequest
Then when you write the .js file on your server you must specify first
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
+8
source to share