2015-09-30 3 views
1

Привет, я создал файл javascript, где я делаю вызов для отдыха api и получения данных. Я хочу вернуть данные вызывающей функции с html-страницы, но так, как работает звонок, я не смог.Calling Rest API из файла Javascript: Data Return Issue

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

Любые предложения о том, как вернуть данные json из .js-файла в вызывающую функцию в h tml-файл будет высоко оценен.

ответ

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

+0

отлично что я искал, спасибо. Я буду использовать токен в url, но он не добавил никакого значения в мой пример, поэтому я проигнорировал его. – chrismasters