2016-09-23 163 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> 

在主页上执行必要的操作,因为现在您可以在网址上使用用户名了。希望这可以帮助..如果有任何疑问,请告诉我。快乐编码:)