我发送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未定义。我如何获取我的数据属性?
答案 0 :(得分:1)
仅使用http
module,您就可以自行阅读和解析" 数据。"
request
是IncomingMessage
和Readable Stream,因此您可以通过绑定到'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:
传递,则您需要确定formatted properly。
var dataString = JSON.stringify({ u: user, p: pa });
您还应该设置contentType
to match。
// ...
data: dataString,
contentType: 'application/json',
// ...
或者,jQuery.ajax()
Object
,然后对data
进行网址编码。
// ...
data: { u: user, p: pa },
// ...