【问题标题】:JSON data not parsing in node.js displays undefined in console未在 node.js 中解析的 JSON 数据在控制台中显示未定义
【发布时间】:2012-08-17 19:20:45
【问题描述】:

未在 node.js 中解析的 JSON 数据在控制台中显示为 undefined..

这是 HTML 代码:

var jsonObjects = [{id:1, name:"amit"}];
jQuery.ajax({
      url: 'http://localhost:8081',
      type: "POST",
      data: {"id":"1", "name":"amit"},
      dataType: "json",
     success: function(result) {
    alert("done")
      }
});

这是 Nodejs 代码:

http.createServer(function (request, response)
{
response.writeHead(200, {"Content-Type":"text/plain"});
var urlObj = JSON.stringify(response.data, true);
console.log(urlObj)
response.end();
}).listen(8081);

【问题讨论】:

    标签: json node.js jquery http-headers


    【解决方案1】:

    尝试使用 GET 方法而不是 Post。试试这个

    var jsonObjects = [{id:1, name:"amit"}];
    
    $.ajax({
    type: 'GET',
    url: 'http://localhost:8081',
    data: {
         jsonData: JSON.stringify(jsonObjects)
    },
    dataType: 'json',
    complete: function(validationResponse) {
    }
    });
    

    【讨论】:

    • 谢谢 Ketan,我自己搞定了.. 不要复制我的答案
    • var http = require('http'), url = require('url'); var sys = 需要("sys"); var url = 要求(“url”); var queryString = require("querystring"); http.createServer( function (req, res) { // 解析请求 url var theUrl = url.parse( req.url ); var queryObj = queryString.parse( theUrl.query ); var obj = JSON.parse( queryObj. jsonData);console.log(obj[0].id);}).listen(8081);
    【解决方案2】:

    数据将保存在请求中,而不是来自客户端请求的响应。

    如果您使用 express 来创建您的 http 服务器,您还需要告诉它使用 bodyParser 中间件。

    【讨论】:

      猜你喜欢
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      相关资源
      最近更新 更多