2016-09-23 5 views
0

나는 주위를 둘러 보았지만 이에 대한 대답을 찾지 못했습니다 ...POST 요청 내의 URL로 리디렉션

저는 NodeJS를 처음 접했습니다. 사용자가 로그인을 시도한 다음 GET을 사용하여 홈 페이지로 리디렉션 할 때 POST 요청을받는 서버를 작성하려고합니다. 홈 페이지에 사용자 이름이 표시됩니다. URL이 내 login.htmladam

을 말한다 페이지에 다음 home.html?username=adam 경우

그래서 URL, 그것은 guest을 말한다 페이지에서 home.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(); 
    }); 
    } 
} 

사용자 이름을 가져 와서 로그 할 수 있었지만 리디렉션을 시도했을 때 페이지가 비어 있었고 URL에 여전히 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 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> 

홈 페이지에서 필요한 조치를 취하십시오. 이제 url에 사용자 이름을 사용할 수 있습니다. 도움이 되었으면 좋겠습니다. 의심스러운 부분이 있으면 알려주십시오. 해피 코딩 :)

관련 문제