我已经使用这个jquery ajax代码来传递JSON:
var jsonObjects = [{id:1, name:"amit"}];
$.ajax({
type: 'GET',
url: 'http://localhost:8080',
data: {
jsonData: JSON.stringify(jsonObjects)
},
dataType: 'json',
complete: function(validationResponse) {
}
});
我已使用此节点js代码来解析JSON数据:
http.createServer(function (request, response) {
response.writeHeader(200, {
"Content-Type": "text/plain"
});
response.writeHead(200, {"Content-Type":"text/plain"});
var theUrl = url.parse(request.url);
var queryObj = queryString.parse( theUrl.query );
var obj = JSON.parse( queryObj.jsonData);
console.log(obj[0].id)
response.write(String(obj[0].id))
response.end();
}).listen(8080,'127.0.0.1');
但它在控制台中显示以下错误:
undefined:1
rn┴P║Eee
^
SyntaxError: Unexpected token u
at Object.parse (native)
at Server.<anonymous> (C:\node\nodejs\node_modules\17-8-12\tracker.js:79:22)
at Server.emit (events.js:70:17)
at HTTPParser.onIncoming (http.js:1610:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:91:29)
at Socket.ondata (http.js:1506:22)
at TCP.onread (net.js:374:27)
然后代码停止..
答案 0 :(得分:1)
本节:
response.writeHeader(200, {
"Content-Type": "text/plain"
});
response.writeHead(200, {"Content-Type":"text/plain"});
似乎是乱码:这是你真正的代码吗?如果是这样,请删除前三行。如果这不能解决问题,请先console.log
request.url
,然后queryObj.jsonData
,看看它们是否合理。
答案 1 :(得分:0)
这不是您问题的直接答案,但我建议您查看Express和bodyParser中间件。
他们可以做以下事情:
var express = require('express');
var app = express();
app.get('/', function(req, res){
console.log(req.query.jsonData);
res.send('return data here');
});
app.listen(8080);