get JSON请求后什么都没有发生



我正在调用API来返回一些数据。我可以在开发工具中看到响应是200成功,在网络选项卡中可以看到返回的数据。

我的问题是在我的UI中显示数据。在这个阶段,我想做的就是在警报中显示返回的数据。

我尝试了以下方法,但警报没有触发。我在控制台中看不到任何错误,如果我手动访问PHP文件(替换GET变量),也没有错误。

jQuery

$.getJSON('fetch.php', { getFiat: fiat, getCoin: coin, getLimit: limit, getAggregate: aggregate, getCall: 4 }, function(data) {
alert(data);
}).fail(function (j, t, e) {
console.log(e);
});

PHP

if($_GET['getCall'] == 4) {
try {
callAPI();
$data = file_get_contents('https://min-api.cryptocompare.com/data/v2/histoday?fsym='.$_GET['getCoin'].'&tsym='.$_GET['getFiat'].'&limit='.$_GET['getLimit'].'&aggregate='.$_GET['getAggregate'].'&e=CCCAGG&api_key=[key]');
$json = json_decode($data);
if(isset($json->Response) != "Error") {
echo $data;
} else {
echo "Broken duh..";
}
}
//catch exception
catch(Exception $e) {
echo $e->getMessage();
}
}

API响应如下所示:https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=30&aggregate=1&e=CCCAGG

检查返回truefalseisset,然后检查truefalse是否不等于"Error":

if(isset($json->Response) != "Error") {

如果是isset,则返回true,即=="Error"。你需要两张分开的支票。根据错误返回的内容,可能是:

if(isset($json->Response) && $json->Response != "Error") {

或检查是否成功:

if(isset($json->Response) && $json->Response == "Success") {