您的代码发出以下 HTTP 请求:
GET google.org HTTP/1.1
Host: localhost
这是您的本地计算机以 400 响应(因为请求确实无效)。这是因为在内部,node 使用url 模块来解析您传递给的字符串http.get
。url 将字符串google.org视为相对路径。
url.parse('google.org');
{ protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: null,
query: null,
pathname: 'google.org',
path: 'google.org',
href: 'google.org' }
由于您的字符串解析为空主机名,因此节点默认使用 localhost。
尝试使用完全限定的 URL。
var http = require('http');
http.get("http://google.org", function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});