Minecraft JSON API值为百分比,然后为宽度

时间:2015-07-16 18:33:54

标签: jquery json minecraft

我从API系统(来自http://mcping.net/)获取Minecraft服务器的详细信息,然后想要使用"在线玩家"和#34;最大玩家"显示一个值,并计算一个百分比,用于填充"宽度"一个酒吧。

出于某种原因,在Enjin上使用它时,我只能收集" Online"玩家数量,其余的都没有收集。我是否对代码做错了,或者这是恩金(该网站正在托管)的问题?如果是这样我怎么能解决这个问题呢?

此代码可在http://www.minevival.com/portal上直播。每个栏都会读取"在线玩家",进度条的宽度应该是服务器充满程度的百分比。

以下是代码:

function MainCheck() {
    $.getJSON("http://mcping.net/api/72.20.45.4:25577/online,max", function(json){
        var online = json.online;
        var max = json.max;
        var percentage = Math.round((online/max)*100).toFixed(0);
    if(online !== undefined) {
        $(".main-sr-only").html(online);
        $("#main-progress-bar").css("width", percentage + "%");
    } else {
        $(".main-sr-only").html("...");
    }
    setTimeout(MainCheck, 4000);
}); 
}

2 个答案:

答案 0 :(得分:3)

我是API的策展人。我已经解决了这个问题,正在努力将其推送到我们所有的服务器上。同时,您可以使用正斜杠格式化请求,如以下示例所示

https://mcping.net/api/72.20.45.4:25577/online,max/

编辑:现在推送更新,API现在应该忽略查询字符串

答案 1 :(得分:1)

问题是请求的实际URL包含时间戳查询字符串参数,该参数被服务器误解为“max”字段的一部分。

请参阅the ajax method documentation,其中.getJSON()是简写,其中说明:

  

缓存(默认:true, false for dataType 'script' and 'jsonp'
  类型:布尔

  如果设置为false,则会强制请求的页面不被浏览器缓存。 注意:cache设置为false只能在HEAD和GET请求中正常使用。它的工作原理是将“_ = {timestamp}”附加到GET参数。其他类型的请求不需要该参数,但在IE8中,当对已经由GET请求的URL进行POST时,该参数除外。

我建议您切换到.ajax()并指定cache: false