无法在浏览器中连接到我的Node服务器,但是curl有效

时间:2018-12-05 16:12:10

标签: node.js curl ip

我有一个简单的node.js服务器,其运行在8080端口上,带有socket.io,代码来自What is an example of the simplest possible Socket.io example?

当我连接curl时,它工作正常:

curl -vk http://www.example.com:8080 * Connected to www.example.com (123.456.789.123) port 8080 (#0)

当我在Mac上使用Chrome 70.0.3538.110浏览到http://www.example.com:8080时,它将一直加载,直到得到ERR_CONNECTION_TIMED_OUT。我在Safari中得到了相同的结果。

但是,当我直接浏览到http://123.456.789.123:8080这样的IP时,它立即可以工作。

为什么会这样?该域指向正确的IP,显然它可以卷曲,也可以wget。是否缺少标题或浏览器需要的其他东西?

我在与之不同的关于接受标头上发现了一些可能与之相关的信息:

  

在您的浏览器中不起作用的原因可能是它发送了一个诸如以下的accept标头:

     

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,\*/\*;q=0.8

     

curl(可能是Chrome扩展程序)要求:

     

Accept: \*/\*

但是,index.js具有res.writeHead(200, {'Content-Type': 'text/html'});,所以我认为它应该发送适当的标头。它也可以在具有IP的浏览器中使用,因此可能与此无关。

我该如何解决?

0 个答案:

没有答案