2016-09-23 12 views
0

私は検索してきましたが、これに対する答えを見つけることができませんでした...POSTリクエスト内のURLにリダイレクト

私はNodeJSが本当に新しいです。ユーザーがログインしようとしたときにPOST要求を受け取り、GETを使用してホームページにリダイレクトするサーバーを作成しようとしています。ホームページにユーザー名が表示されます。そう

URLはURLが、それは私のlogin.htmlオンadam

を言うページに、その後home.html?username=adamであれば、この

<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> 
と同様の形式があります、それは guest言うページに、 home.htmlある場合

私の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サーバーでフォームデータを取得するには:

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'); 
}); 

そして、あなた:

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

は次に以下のようなサーバーのjsを更新します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でユーザー名を使用しています。このヘルプを参考にしてください。疑問があれば教えてください。ハッピーコーディング:)

関連する問題