【问题标题】:Send json response to Jquery向 Jquery 发送 json 响应
【发布时间】:2013-11-24 06:53:42
【问题描述】:

我正在使用以下代码从客户端机器获取一些响应并正确获取该响应。但是我必须将该响应发送给 Jquery。我不知道这怎么可能?”

var getOsLists = function(context){
 var options = {
            host: '172.16.2.51',
            port: 9090,
            path: '/vm/osList',
            method: 'POST'
        };
 var req = http.request(options, function (res) {
            res.on('data', function (data) {               
                    console.log(data);  

                                                   // return sendJson(data, 404);

            });
        });
        req.on('error', function (e) {
            console.error(e);
        });
        req.end();
}
exports.getOsLists = getOsLists; 

我想在下面的部分中获取上述数据

function getOsList() {
    $.getJSON('/getOpSystem', function (data) {
            alert(data.toString()); // it does nt print anything
        var html = '';
        data.forEach(function (n) {
            alert(n);
            html += '<option value="' + n.ID + '">' + n.ID + '</option>';
        });
        $('#os').html(html);
    });
}

在 node.js 中

case '/getOpSystem':
          objSchedule.getOsLists();
          break;

【问题讨论】:

标签: javascript jquery json node.js


【解决方案1】:

只需将响应发送为 JSON,在 express.js 中就这么简单:

res.json(object);

【讨论】:

    【解决方案2】:

    这不是一个有效的 JSON(您可以检查它here)。 {} 表示对象,您必须使用 逗号半列 分隔对象。 semi-column 表示将其分配给不同的变量; coma 表示它是一个数组

    所以应该是这样的

    [{"ID": "VM-WIN7-64","OS": "Windows 7"},
     {"ID": "VM-WIN7-32","OS": "Windows 7"},
     {"ID": "V M-WIN7-32-1","OS": "Windows 7"},
     {"ID": "VM-WIN7-32-2","OS": "Windows 8"}
    ]
    

    我把它做成了一个数组,因为你使用的是 data.forEach

    【讨论】:

      【解决方案3】:

      您可以使用 Jquery Ajax post call 将数据发送到服务器。检查代码

          $.ajax({
          type: "POST",
          url: "some.php",
          data: { name: "John", location: "Boston" }
         })
         .done(function( msg ) {
         alert( "Data Saved: " + msg );
         });
      

      【讨论】:

        【解决方案4】:

        我建议使用express 框架。它提供了一个res.json() 方法,让您可以通过一个Javascript 对象。该框架将处理将对象字符串化为 jQuery 可以读取的 JSON。

        var express = require('express');
        var app = express();
        
        app.get('/getOpSystem', function(req, res) {
            var system = [];
            //make a request, put response in `system`
            res.json(system);
        });
        
        app.listen(3000);
        

        或者,您可以在$.ajax 请求中将dataType 选项设置为“文本”并在浏览器端解析:

        $.ajax(url, {
            method: 'POST',
            dataType: 'text'
        }).done(function(data) {
            //do something
            var array = data.split(',');
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-09
          • 2018-01-28
          • 1970-01-01
          • 2017-11-03
          • 2017-08-02
          • 2016-09-13
          • 2020-07-25
          • 1970-01-01
          相关资源
          最近更新 更多