使用jquery $ .getJSON的JSONP请求无法处理格式良好的JSON

时间:2010-03-11 15:26:19

标签: javascript jquery json jsonp

我不确定现在可以从我正在尝试的网址中找到它。请参阅此网址:http://www.heiaheia.com/voimakaksikko/stats.json

它总是提供相同的填充功能“voimakaksikkoStats”。它是格式良好的JSON,但我无法从远程服务器加载它。是否需要从服务器端进行一些工作或者是否可以使用javascript加载?我认为问题必须与回调函数有关...

JQuery不是必需的,但它会很好。

这个(callback = voimakaksikkoStats)没有返回任何内容(firebug - > net - >响应),并且警报不会触发:

$.getJSON("http://www.heiaheia.com/voimakaksikko/stats.json?callback=voimakaksikkoStats", function(data){
    alert(data);
})

但是这个(回调=?):

 $.getJSON("http://www.heiaheia.com/voimakaksikko/stats.json?callback=?", function(data){
    alert(data);
})

返回:

voimakaksikkoStats({"Top5Sports":[],"Top5Tests":{"8":"No-exercise ennuste","1":"Painoindeksi","2":"Vy\u00f6t\u00e4r\u00f6n ymp\u00e4rys","10":"Cooperin testi","4":"Etunojapunnerrus"},"Top5CitiesByTests":[],"Top5CitiesByExercises":[],"ExercisesLogged":0,"Top5CitiesByUsers":[""],"TestsTaken":22,"RegisteredUsers":1});

但我无法访问它...在这两个示例中,警报永远不会触发。有人可以帮忙吗?

5 个答案:

答案 0 :(得分:1)

<script type="text/javascript">
function voimakaksikkoStats(stats) {
  var ul = new Element('ul');
  ul.insert(new Element('li').update('Registered users: '+ stats['RegisteredUsers']));
  ul.insert(new Element('li').update('Tests taken: '+ stats['TestsTaken']));
  ul.insert(new Element('li').update('Top5 sports: '+ stats['Top5Sports'].join(', ')));
  $(document.body).insert({'bottom': ul});
}
</script>
<script type="text/javascript" src="http:/www.heiaheia.com/voimakaksikko/stats.json"></script>

此示例使用Prototype.js创建包含来自给定统计数据的一些数据的列表,然后将此列表放在文档正文的底部。

答案 1 :(得分:0)

脚本是否也试图从http://www.heiaheia.com上的http://www.heiaheia.com获取json?

如果不是这个原因,它目前没有被授权(使用javascript)向服务于脚本的服务器发出请求

答案 2 :(得分:0)

要让测试功能正常工作,请尝试更改为callback=?

答案 3 :(得分:0)

如果您的请求转到其他域,请尝试使用 jsonP 方法。搜索jsonP文档

答案 4 :(得分:0)

<script type="text/javascript">
function voimakaksikkoStats(obj) {
    alert(obj.TestsTaken);
}
</script>
<script type="text/javascript" src="http://www.heiaheia.com/voimakaksikko/stats.json"></script>

我从来没有使用过jQuery,但上面的简单代码解决了我的问题。我找到了雅虎的帮助:http://developer.yahoo.com/common/json.html