2016-12-30 193 views
0

我有一个简单的节点服务器,它一直运行并顺利处理请求,直到我回家过节。现在,它似乎正在加载,但不响应POST/GET请求。通过这个我的意思是,当我启动我的服务器(通过调用节点app.js)控制台打印出服务器正在侦听特定端口,当我访问http://localhost:8000/时,我看到“hello”作为回应。但是,当我尝试通过邮递员或通过XMLHTTPRequest向我的服务器发送请求时(在我移动位置之前工作顺利),我收到错误消息。节点服务器未响应请求

我的代码有问题吗?我的无线网络和家中的连接可能与我的工作区不同吗?

见重要的代码在我的服务器如下:

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ 
    extended: true 
})); 

app.get('/', function(req,res){ 
    res.send("hello"); 
}) 

app.listen(8000, function() { 
    console.log('App listening on port 8000!'); 
}); 

非常感谢你!

+3

你会得到什么错误?你在与节点服务器相同的主机上运行Postman吗? – Joe

+0

是的,我在与节点服务器相同的主机上运行Postman。 但是,在我的onreadystatechange函数中打印请求的状态时,我得到一个0。另一个stackoverflow问题(http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp)列出了这个错误的可能原因为: 非法跨源请求(请参阅CORS) 防火墙阻止或过滤 请求本身已在代码中被取消... 我应该回到我的工作场所继续工作吗? – vchen04

+0

我们需要确切地看到你得到了什么错误以及你的客户调用代码是什么。由于您更改了位置,因此可能是网络访问问题,浏览器跨源问题以及其他所有问题。你需要给我们一些线索,看到你得到的确切的错误将是一个开始。 – jfriend00

回答

0

我不知道你得到了什么错误(这将是一种重要的知道),但代码是好的。它起作用并返回正确的响应。见:

$ curl -v http://localhost:8000/ 
* Hostname was NOT found in DNS cache 
* Trying 127.0.0.1... 
* Connected to localhost (127.0.0.1) port 8000 (#0) 
> GET/HTTP/1.1 
> User-Agent: curl/7.35.0 
> Host: localhost:8000 
> Accept: */* 
> 
< HTTP/1.1 200 OK 
< X-Powered-By: Express 
< Content-Type: text/html; charset=utf-8 
< Content-Length: 5 
< ETag: W/"5-XUFAKrxLKna5cZ2REBfFkg" 
< Date: Fri, 30 Dec 2016 15:18:36 GMT 
< Connection: keep-alive 
< 
* Connection #0 to host localhost left intact 
hello 

我看到的唯一的事情是,它返回的HTML的内容类型而不是纯文本,这可能是一个问题。您可以将其更改为:

app.get('/', function(req,res){ 
    res.set('Content-Type', 'text/plain'); 
    res.send("hello"); 
}); 

拥有纯文本的内容类型。

相关问题