用javascript调用API

时间:2017-02-14 06:47:09

标签: javascript php json api

我有一个API个php函数,可以从数据库中执行SQL查询,并对JSON中的值进行编码。

例如

function getApiCall(){
     $sql = 'SELECT * AS "Total" from tablename"';
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);
        $stmt->execute();
        $user = $stmt->fetch(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($user);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}';
    }
}

在浏览器中调用网址http://localhost/getapicall/apikey的价值是

{"Total":"80"}

在使用JavaScript的前端HTML页面中,API URL称为

<script type="text/javascript">
var myJSON = $.get('../v1/getapicall/default');
document.getElementById("txt1label").innerHTML = myJSON;
</script>

但是显示的值是[object object],如何显示json数据的值,即在这种情况下为80?

如果我尝试

document.getElementById("txt1label").innerHTML = myJSON.Total;

该值显示为未定义。

2 个答案:

答案 0 :(得分:1)

$.get()是一个异步函数,这意味着它不会立即返回您的数据 - 它必须首先往返于您的服务器。

而是传递一个函数,以便在从端点返回数据时执行。

var myJSON = $.get('../v1/getapicall/default', function(result) {
    document.getElementById("txt1label").innerHTML = result.Total;
}));

答案 1 :(得分:0)

您需要削减json数据并等待get请求完成。异步。

 <script type="text/javascript">
$.get( '../v1/getapicall/default', function( data ) { 
    var obj = JSON.parse(data);      
    document.getElementById("txt1label").innerHTML = obj.Total;
});
</script>