2016-12-30 158 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"); 
}); 

擁有純文本的內容類型。

相關問題