0

node.jsで、JSON関数を介して行われた投稿から投稿変数を取得する際に問題が発生しました。
編集:Chromeのインスペクターでフォームの投稿を確認できます。フォームの投稿は適切で、適切にフォーマットされています。

サーバービット:

app.use(express.bodyParser());
app.post('/user', function (req, res) {
    var tempSession = req.body.tempSession;
    console.log(tempSession);
}

JSON関数からの投稿:

function postJSONP(url, params, method) {
    method = method || "post"; // Set method to post by default, if not specified.

    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", url);

    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();        
}

JSON関数を呼び出す投稿:

function LoginSubmit() {
    var action = 'login';
    var username = document.getElementById('username').value;
    var password = document.getElementById('password').value; 
    var tempSession = generateSession();

    postJSONP('/user?callback=none&action=' + action + '&user=' + username,{"password":password, tempSession:tempSession});
 }

HTMLから送信するフォーム:

 <input id="submit" name="submit" type="submit" value="Login" onclick="LoginSubmit();">

Node.jsコンソールからの結果:

 undefined
4

1 に答える 1

1

スタックで役立つリンクが見つかりました:
Express.js req.body undefined

req.body も未定義であることに気付きました。Express がルートを提供できるようにする前に、すべてを構成する必要があることがわかりました。
app.post() セクションの前に app.get() がありました。

最も役に立ったセクションは次のとおりです。

ルートを定義する前に、すべての構成を定義する必要があります。

app.configure(function(){
    app.use(express.bodyParser());
    app.use(app.router);
});
于 2013-03-11T16:06:53.107 に答える