您好我创建了一个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文件中的调用函数的任何建议都将受到高度赞赏。
答案 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