Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得一个网站';s带有节点的HTTP响应头_Javascript_Node.js_Http Headers - Fatal编程技术网

Javascript 如何获得一个网站';s带有节点的HTTP响应头

Javascript 如何获得一个网站';s带有节点的HTTP响应头,javascript,node.js,http-headers,Javascript,Node.js,Http Headers,我一整天都在找这个。我所要做的就是为使用Node JS的给定网站获取http响应头加上状态代码。那很简单 对于这个简单的问题,我检查过的所有答案和文档似乎都过于复杂,而且我似乎无法让它们正常工作 例如,一个答案为我提供了这段代码 const https = require('https') const options = { hostname: 'google.com' } const req = https.request(options, (res) => { console

我一整天都在找这个。我所要做的就是为使用Node JS的给定网站获取http响应头加上状态代码。那很简单

对于这个简单的问题,我检查过的所有答案和文档似乎都过于复杂,而且我似乎无法让它们正常工作

例如,一个答案为我提供了这段代码

const https = require('https')
const options = {
  hostname: 'google.com'
}

const req = https.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`)

  res.on('data', (d) => {
    process.stdout.write(d)
  })
})

req.on('error', (error) => {
  console.error(error)
})

req.end()
在谷歌上试用后,它给我的回复代码是301,这显然是错误的


对于这个例子,我相信正确的代码应该是“200”表示OK。另外,这一个不会显示所有的标题。

如果我cURL
google.com

这是因为
google.com
正在将我重定向到
www.google.com
。然而,如果我把
www.google.com
,它会给我这样的回答

这是网页。就标题而言,它们应该位于
res.headers
中,根据显示以下示例的

const https = require('https');

https.get('https://encrypted.google.com/', (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });

}).on('error', (e) => {
  console.error(e);
});

如您所见,他们使用
console.log('headers:',res.headers)打印标题。您可以使用
res.headers['INSERT-header-NAME-HERE']
访问给定的标题,其中INSERT-header-NAME-HERE被替换为

301是正确的状态代码,表示页面已重定向。您正试图点击
google.com
,然后它会重定向到
https://google.com
因此,您应该首先阅读有关重定向的内容。另外,验证地址
google.com
是否返回301状态码,然后是302,最后是200。这就是谷歌将用户重定向到HTTPS协议的方式。默认情况下,调用
google.com
是一种HTTP协议。尝试呼叫:
https://www.google.com
直接阻止重定向。直接通过https调用google,我会得到一个error@RaviMattar呼叫
https://www.google.com
直接。我怎么能得到所有的状态码?上帝啊,非常感谢!我终于明白了一点,并设法使它发挥作用。