无法访问127.0.0.1或任何其他IP,localhost工作

时间:2017-02-12 14:33:05

标签: javascript node.js express windows-7

我正在使用Nodejs& Expressjs。

当我尝试通过http://www.localhost:3000/访问我的应用时,应用加载就好了。但如果我尝试任何其他环回IP(127.0.0.1 /我的PC名称/我的PC IP),我得到:

  

请求网址:http://127.0.0.1:3000/请求方法:GET状态代码:301   永久移动

然后:

  

获取http://www.127.0.0.1:3000/ net :: ERR_NAME_NOT_RESOLVED

我正在使用Windows 7.

我经过大量的网络搜索后尝试过:

  1. 编辑主机文件,添加:

    127.0.0.1 localhost

    :: 1 localhost

  2. 禁用Windows防火墙

  3. 明确告诉express要听取所有IP :(有或没有'0.0.0.0')

    app.listen(3000, "0.0.0.0", function() {
      console.log("listen on 3000"); 
    });
    
  4. 不同的端口(8080,8081等)

  5. 使用http://不带或任何其他变体。

  6. 另外如果我为它的实例运行Wamp服务器(例如访问phpmyadmin),一切都很好。 (localhost,127.0.0.1等通过端口80)

3 个答案:

答案 0 :(得分:0)

尝试将localhost替换为0.0.0.0

答案 1 :(得分:0)

从ip地址中删除www,它应该有效。

答案 2 :(得分:0)

问题在于我已将无www的重定向添加到www,其中包含以下几行:

// non-www to www redirect
app.get('/*', function (req, res, next) {
    if (req.headers.host.match(/^www/) === null) {
        res.redirect(301, 'http://www.' + req.headers.host + req.url);
    } else {
        next();
    }
});

它也影响了127.0.0.1,删除它进行开发修复了问题。