Javascript 无法使用api获取json数据
我使用下面的javascript和html来获取json数据。但我不能让它与这个api一起工作。它只返回空白结果。我已经检查了api链接是否正常工作,所以我认为服务器没有问题。请帮忙 html json数据Javascript 无法使用api获取json数据,javascript,json,Javascript,Json,我使用下面的javascript和html来获取json数据。但我不能让它与这个api一起工作。它只返回空白结果。我已经检查了api链接是否正常工作,所以我认为服务器没有问题。请帮忙 html json数据 {"pool_name":"minerclaim.net","hashrate":60185.64096,"workers":1056,"shares_this_round":168700,"last_block":1531882,"network_hashrate":61752985,"f
{"pool_name":"minerclaim.net","hashrate":60185.64096,"workers":1056,"shares_this_round":168700,"last_block":1531882,"network_hashrate":61752985,"fee":1,"payout":"prop"}
正如我前面提到的,您在PHP输出中得到了booltrue,因为 可以使用的PHP文件示例如下:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://xmg.minerclaim.net/index.php?page=api&action=public");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 0);
$headers = array();
$headers[] = "Content-Type: application/json; charset=utf-8";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Some error:' . curl_error($ch);
die();
}
// You want your browser to think it's JSON, as we return as JSON
header("Content-Type: application/json; charset=utf-8");
echo($result);
curl_close($ch);
?>
您可以将其复制并粘贴到一个新的PHP文件中,将$.ajax url指向该新文件,然后看到神奇的效果。上面的例子对我很有用,因为我正在得到结果
对于javascript,您还可以尝试在`dataType:json'之后添加contentType:application/json,因为这将确保设置返回的头的内容类型。javascript控制台中是否有错误?您可能遇到了CORS问题。问题是服务器不支持CORS,因此获得此JSON的唯一方法是,如果您在同一个域中执行此脚本,正如上面两篇关于CORS的文章所述,您可以尝试使用PHP cURL返回JSON而不出现此问题。因此,编写一个简单的.php文件,在其中放置一个cURL命令,指向您请求的URL,并将.php文件的URL添加到$.ajax中。@FrankW。我编写了一个简单的.php文件,php确实可以显示json数据。但是我的ajax仍然可以获取json数据。我已经将phpfile指向我的url。我注意到php文件将在json数据的末尾添加booltrue。这会是个问题吗?这是我的php代码$curl=curl\u init;curl_setopt$curl,CURLOPT_URL,'https://xmg.minerclaim.net/index.php?page=api&action=public'; curl_setopt$curl,CURLOPT_头,1$data=curl\u exec$curl;curl_close$curl;var_dump$数据;它将booltrue添加到PHP文件中,因为您使用的是var_dump$data,示例中的$data是curl_exec的输出。下面我给你写一个例子作为答案。
{"pool_name":"minerclaim.net","hashrate":60185.64096,"workers":1056,"shares_this_round":168700,"last_block":1531882,"network_hashrate":61752985,"fee":1,"payout":"prop"}
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://xmg.minerclaim.net/index.php?page=api&action=public");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 0);
$headers = array();
$headers[] = "Content-Type: application/json; charset=utf-8";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Some error:' . curl_error($ch);
die();
}
// You want your browser to think it's JSON, as we return as JSON
header("Content-Type: application/json; charset=utf-8");
echo($result);
curl_close($ch);
?>