发送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 ); });