发送JSON响应给JQuery

我使用下面的代码从客户端机器得到一些响应,并正确地得到这个响应。但是我必须把这个响应发送给Jquery.I不知道它是怎么可能的?

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; 

这不是一个有效的JSON(你可以在这里查看 )。 {}表示一个对象,您必须用逗号半列分隔对象。 半列是指将其分配给不同的variables; 昏迷意味着它是一个数组

所以应该是这样的

 [{"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

我build议使用快速框架。 它提供了一个res.json()方法,可以让你通过一个Javascript对象。 该框架将处理对象到JSON,jQuery可以读取。

 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选项设置为“text”,并在浏览器端进行parsing:

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

只需发送响应为JSON,在express.js就像这样简单:

 res.json(object); 

你可以使用jQuery的Ajax post调用来发送数据到服务器。 检查代码

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