从Javascript文件调用Rest API:数据返回问题

时间:2015-09-30 15:48:08

标签: javascript jquery json api rest

您好我创建了一个javascript文件,我打电话来休息api并获取数据。 我想从html页面将数据返回到调用函数,但调用的方式是有效的,我无法做到。

HTML:

<html>
<head>
    <title></title>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js" />
    <script src="jquery-G5API-1.0.0.js" />
    <script type="text/javascript">
           function JSFile() {
                var result = GetStatus(123456);
                alert('HTML: '+ result);
           }

    </script>
</head>
<body>
    <input id="Button1" type="button" value="JSFile" onclick="JSFile()" />
</body>
</html>

查询G5API-1.0.0.js:

function GetStatus(token) {
     var url = 'some/url';

     var result = '';
     $.getJSON(url,function(data) 
     { 
        //alert(JSON.stringify(data)); 
     })
     .always(function(xhr, status) {
          alert( "finished: " + JSON.stringify(xhr));
          result = JSON.stringify(xhr);
      });

     alert('Returning result: ' + result);
     return result;
 }

调用警报的顺序:     返回结果:empty_string     HTML:empty_string     完成:json_data

有关如何将.js文件中的json数据返回到html文件中的调用函数的任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

您需要解决获得预期结果的承诺。看看 jQuery deferred object api并观察(简化)以下......

function GetG5Status3(token) {
    return $.getJSON('some/url')
}
function JSFile() {
    GetG5Status(123456).done(function(response) {
        console.log(response);
    });
}

JSFiddle Link - 简化演示

另外,我没有看到使用token