2013-11-12 4 views
1

Am, используя следующий код, чтобы получить ответ от машины клиента и получить этот ответ правильно .Но я должен послать этот ответ Jquery.I не знает, как это возможно?»Отправить ответ JSON для 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; 
+0

Try, как это http://askhds.blogspot.in/2012 /02/nodejs-rest-call-using-http-library.html –

ответ

0

Просто отправьте т он ответ в формате JSON, в express.js не так просто, как это:

res.json(object); 
+0

В моем коде я должен поставить этот код? – Psl

+0

получение ошибок при использовании 're.json (object)' – Psl

2

Это не является допустимым JSON (вы можете проверить это here). {} означает объект, и вы должны разделить объекты либо с помощью запятой, либо полуколона. semi-column означает присвоение его различным переменным; кома означает, что это массив

Так оно и должно быть что-то вроде

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

0

Вы можете использовать Jquery Ajax пост вызов для отправки данных на сервер. Проверьте код

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

Я бы рекомендовал использовать рамки express. Он предоставляет метод 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); 

В качестве альтернативы, вы можете установить dataType опцию «текст» в $.ajax запроса и разобрать на стороне браузера:

$.ajax(url, { 
    method: 'POST', 
    dataType: 'text' 
}).done(function(data) { 
    //do something 
    var array = data.split(','); 
}); 
Смежные вопросы