繁体   English   中英

显示从服务器获取的JSON数据时出现问题

[英]Problems with displaying JSON data I got from a server

我是JSON / AJAX的新手,但从服务器获取的JSON对象中显示数据时遇到一些问题。URL“ http:// localhost:8387 / rest / resourcestatus.json”表示我想通过HTML / Javascript显示该对象。该对象存储一些监视信息:

 {"groupStatus":[ {"id":"AL Process","time":1332755316976,"level":0,"warningIds":[],"errorIds":[]}, {"id":"AL:instance1","time":1332919465317,"level":0,"warningIds":[],"errorIds":[]}, {"id":"AL:instance2","time":1332919465317,"level":1,"warningIds":["documentarea.locked"],"errorIds":[]}, {"id":"SL","time":1331208543687,"level":0,"warningIds":[],"errorIds":[]} ]} 

由于请求的URL与我的域不同,因此我无法创建典型的XMLHttpRequest。.因此,我发现可以通过jQuery的“ getJSON()”方法实现AJAX跨域请求。

我想在表格中显示ID及其级别

有什么解决办法可以做到这一点?

$ .getJSON的回调函数在其参数中包含AJAX调用的结果。

$.getJSON('http://localhost:8387/rest/resourcestatus.json', function(data) {
    $(data.groupStatus).each(function() {
        // do something with $(this).id
    });
});

我认为您指的是JSONP 参见jQuery.ajax Ex:

var url = 'http://localhost:8387/rest/resourcestatus.json';    
$.getJSON(url+'?callback=?', function(data) 
{
    //data is 
    /*{
        "groupStatus":
        [
            {"id":"AL Process","time":1332755316976,"level":0,"warningIds":[],"errorIds":[]},
            {"id":"AL:instance1","time":1332919465317,"level":0,"warningIds":[],"errorIds":[]},
            {"id":"AL:instance2","time":1332919465317,"level":1,"warningIds":["documentarea.locked"],"errorIds":[]},
            {"id":"SL","time":1331208543687,"level":0,"warningIds":[],"errorIds":[]}
        ]
    }*/
});

在服务器端,您需要将响应包装到JavaScript函数中: response = Request["callback"] +"("+ response+")";

结果将如下所示:

?({"groupStatus":[{"id":"AL ....})

因此,浏览器实际上将加载有效的Java脚本代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM