2016-09-23 134 views
0

我一直在四處搜索,但似乎無法找到答案...在POST請求中重定向到URL

我對NodeJS非常陌生。我試圖編寫一個服務器,在用戶嘗試登錄時接受POST請求,然後使用GET重定向到主頁,現在主頁將顯示用戶名。

所以如果URL home.html,在頁面上它說guest,如果URL home.html?username=adam那麼頁面它說adam

在我login.html上,有類似這樣的

<FORM ACTION="login.html" METHOD="POST"> 
    <CENTER> 
    Username: <INPUT TYPE="text" ID="username" required=true><BR> 
    Password: <INPUT TYPE="password" ID="password" required=true><BR> 
    <INPUT TYPE="SUBMIT"> 
    </CENTER> 
</FORM> 
形式

在我的server.js上,我設有試圖獲取用戶名和重定向的區塊

http.createServer(function (req, res) { 
    if(req.url == "login.html" && req.method == "POST") 
    { 
    req.on('data', function(chunk) { 
     var someData += chunk; 
     var username = //get from POST data 

     //attempt to redirect 
     res.writeHead(200, {"Location":"home,html?username=adam"}); 
     res.end(); 
    }); 
    } 
} 

我能夠獲取用戶名並記錄下來,但是當我嘗試重定向時,頁面空白,並且網址仍然顯示login.html ...

我甚至不確定我是否會「正確地做,請幫助。

回答

0

由於您是nodejs的新手,請嘗試使用REST API進行通信,而不是直接重定向到其他頁面。

要檢索服務器的表格數據的js,你需要安裝體解析器在這裏詳細描述:

[https://github.com/expressjs/body-parser][1]

然後更新您的服務器JS象下面這樣:

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

app.use(bodyParser()); 

app.get('/login', function (req, res) { 
    res.sendfile('login.html'); 
}); 
app.get('/home', function (req, res) { 
    res.sendfile('home.html'); 
}); 
app.post('/login', function (req, res) { 

    console.log("Username:",req.body.username); 
    console.log("password:",req.body.password);//just for reference do not show anywhere 
    res.redirect('/home?username='+req.body.username); 
}); 



http.listen(3000, function() { 
    console.log('listening on *:3000'); 
}); 

和你登錄login.html將如下所示:

<FORM ACTION="/login" METHOD="POST"> 
    <CENTER> 
    Username: <INPUT TYPE="text" name="username" ID="username" required=true><BR> 
    Password: <INPUT TYPE="password" name="password" ID="password" required=true><BR> 
    <INPUT TYPE="SUBMIT"> 
    </CENTER> 
</FORM> 

在主頁上執行必要的操作,因爲現在您可以在網址上使用用戶名了。希望這可以幫助..如果有任何疑問,請告訴我。快樂編碼:)