1

我正在尝试从此 api 获取一些数据:

https://www.bitstamp.net/api/ticker/

进入一个 jquery 变量(最终显示在网页上)。它返回一个 JSON 字典(更多信息在这里https://www.bitstamp.net/api/)。

我尝试了几个小时完成所有客户端,但意识到我不能,因为 api 不支持跨域请求也不支持 JSONP。所以我然后转到服务器端代码:

我有一个带有以下代码的 php 文件“test.php”:

<?php
$homepage = file_get_contents('https://www.bitstamp.net/api/ticker/');
echo $homepage;
?>

然后在我的html页面中,我有以下代码:

<script>
var last = JSON.parse(test.php)["last"]
document.getElementById('apidata').innerHTML=last;
</script>
<span id="apidata"></span>

但我不知道为什么它不起作用!任何人都可以对此有所了解吗?

我认为 jquery 可能更简单,但如果有人知道如何用 JS 完成这件事,我也想听听。我也怀疑我的 php 文件是错误的。

编辑:这是我的 php 文件http://www.buyabitcoin.co.uk/beta/test/test.php 和我的 html 文件http://www.buyabitcoin.co.uk/beta/test/test 的链接。 html

用户名:'test' 密码:'test123'

编辑:我也试过

$.getJSON('test.php', function(response) {$("#apidata").html(response.value); });

在html中但无济于事。任何人都可以确认我的 php 输出的是 JSON 而不是字符串吗?

提前谢谢了

4

4 回答 4

1

您可以使用 jQuery ajax 函数从 php 页面获取 JSON

像,

$.ajax({
    dataType: "json",
    url: 'test.php',
    data: data,
    success: function(data){
        var last = data.last
        $('#apidata').innerHTML=last;
    }
});

阅读更多关于jQuery.ajax http://api.jquery.com/jQuery.ajax/

于 2013-04-23T06:02:45.867 回答
1

像这样修改你的 php 文件:

<?php
header('Content-type: application/json');
$homepage = file_get_contents('https://www.bitstamp.net/api/ticker/');
echo $homepage;
?>

header()告诉请求实体它提供什么类型的数据。您请求的 url ( https://www.bitstamp.net/api/ticker/ ) 提供了这个 json 字符串:

{
    "high": "161.00",
    "last": "154.00",
    "bid": "153.51",
    "volume": "20295.34112055",
    "low": "135.10",
    "ask": "154.00"
}

你的 html 页面有这个 JQuery:

$.getJSON('test.php', function(response) {
    // access the response here
    // e.g. get the volume
    var volume = parseInt(response.volume);
    // the numbers are returned as strings (numbers in quotes), thats why parseInt should be used
});
于 2013-04-25T07:31:40.540 回答
0

您不需要 jQuery 就可以下载 JSON 字符串并替换 div 的内容!

function loadXMLDoc() {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            r = JSON.parse(xmlhttp.responseText);
            document.getElementById("apidata").innerHTML=r;
        }
    }

    xmlhttp.open("GET","/beta/test/test.php",true);
    xmlhttp.send();
}

loadXMLDoc();
于 2013-04-23T06:07:07.703 回答
0

我设法用下面的代码做我想做的事。这使我可以从 JSON 中“提取”一个值(在本例中为“last”的值),以在单独的 html 文件中用作 JS 变量:

在我的 php 文件中:

<?php
$ticker = file_get_contents('https://www.bitstamp.net/api/ticker/');   
$obj = json_decode($ticker,true); // Split the JSON into arrays.
echo json_encode(array("myVariable" => $obj['last']));
?>

在我的 html 文件中:

$.getJSON('test.php', function(data) {
var myVar = data.myVariable }); 

我希望这可以帮助别人。

于 2013-04-25T04:47:44.730 回答