0

我发送ajax请求:

var dataString = "{u:" + user + ", p:" + pa + "}"; 
            $.ajax({
                type: "POST",
                url: "lg.html",
                data: dataString,
                success: function(data){
                    if(data){
                        window.location = "http://localhost:8001/ea.html";  
                    }
                    else{
                        console.log(data);
                    }
                }
            });

现在,我在 node.js 中有我的服务器:

http.createServer(req).listen(8000);
function req(request, response){}

我想获取我的表单数据属性,所以我执行以下操作:

request.data;

但我看到 req.data 是未定义的。如何获取我的数据属性?

4

1 回答 1

1

仅使用该http模块,您就可以自行读取和解析“数据”。

request是一个可读的 StreamIncomingMessage,所以你可以通过绑定到它的和事件来做到这一点。'data''end'

function req(request, response) {
    var body = [];
    request.setEncoding('utf8');

    request.on('data', function (chunk) {
        body.push(chunk);
    });

    request.on('end', function () {
        var data;

        if (request.url === '/lg.html') {
            data = JSON.parse(body.join(''));

            var user = data.u;

            // ...
        }
    });
}

或者,您可以使用这样的框架express可以大大简化这一点:

var express = require('express');
var app = express();

app.use(express.bodyParser());

app.get('/lg.html', function (req, res) {
    var user = req.body.u;

    // ...
});

但是,如果您将 JSON 作为 传递data:,您需要确保它的格式正确

var dataString = JSON.stringify({ u: user, p: pa }); 

您还应该将 设置contentType 为 match

// ...
    data: dataString,
    contentType: 'application/json',
// ...

或者,给jQuery.ajax()Object并让它对data.

// ...
    data: { u: user, p: pa },
// ...
于 2013-07-28T11:40:01.050 回答