0

この 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)

その後、コードが停止します..

4

2 に答える 2

1

このセクション:

response.writeHeader(200, {
  "Content-Type": "text/plain"
});
response.writeHead(200, {"Content-Type":"text/plain"});

文字化けしているようです: それはあなたの本当のコードですか? その場合は、最初の 3 行を削除します。それでも問題が解決しない場合は、console.log request.urlまず、queryObj.jsonDataそれらが妥当かどうかを確認してください。

于 2012-08-18T17:36:11.037 に答える
0

これはあなたの問題に対する直接的な答えではありませんが、ExpressbodyParserミドルウェアを確認することをお勧めします。

次のようなことができます。

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);
于 2012-08-18T15:49:43.433 に答える