我正试图从这个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而不是字符串吗?
非常感谢提前
答案 0 :(得分: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/
答案 1 :(得分:1)
像这样修改你的php文件:
<?php
header('Content-type: application/json');
$homepage = file_get_contents('https://www.bitstamp.net/api/ticker/');
echo $homepage;
?>
header()告诉请求实体它提供了哪种数据。 您请求的网址(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
});
答案 2 :(得分: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();
答案 3 :(得分: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 });
我希望这有助于某人。