使用Javascript访问PHP JSON响应
问题描述:
这是一种有效的方法:我想通过源代码保持api密钥不被访问,所以我一直试图用PHP隐藏它并使用Javascript来显示数据。 (我更喜欢使用js语法来显示数据)我已经能够成功显示数据,但是当我查看源代码时,我可以看到JSON响应。任何人都可以告诉我,如果这是一个有效的方法,为什么不是一个好主意,让源显示json?使用Javascript访问PHP JSON响应
<?php
$apikey = "xxxx";
$data = file_get_contents('http://url?apikey=' . $apikey);
$json = json_decode($data,true);
?>
我再访问响应,像这样:
<script type="text/javascript">
var data = <?php echo json_encode($json) ?>;
$('.in-theaters-soon').append('<p>' + data.movies[0].title + '</p>');
</script>
答
您可以直接echo
,因为你已经在$json
的响应从PHP值。例如:
<div class="in-theaters-soon">
<p><?php echo $json['movies'][0]['title']; ?></p>
</div>
答
总是对打印的数据进行一些验证。
<?php
$apikey = "xxxx";
$data = file_get_contents('http://url?apikey=' . $apikey);
if (is_array($data) && ! empty($data)) {
/**
* Do something.
/**/
}
答
你可以做这样的事情,如果你有一个单独的文件的PHP。
您的php文件。
<?php
// create a token check to make sure it is being called.
$apikey = "xxxx";
$data = file_get_contents('http://url?apikey=' . $apikey);
echo json_encode($data);
?>
然后查询你的php文件就像这样发送一个令牌或类似的东西。
$.ajax({
url: url,
type: 'POST',
data: {token:token},
success: function(data){
var response = $.parseJSON(data);
for(var x = 0; x < response.length; x++){
$('.in-theaters-soon').append('<p>' + response[x].title + '</p>');
}
},
cache: false,
contentType: false,
processData: false
});
希望这会有所帮助。
嗨littleibex,我更喜欢使用JavaScript来显示数据,因为我更熟悉它的语法。你认为上述方法有效吗?以及您如何看待可以在源代码中查看JSON? – Jgunzblazin
您的方法是有效的,因为它可以完成工作,即使这是一个非常迂回的做法。您的JSON在源代码中查看的事实不会造成任何伤害,因为您无论如何都以一种非常好的方式(使用HTML)将其显示给用户。另外,由于它只是JSON,因此无法回溯JSON的来源和方式。 – littleibex
好的,谢谢你的输入 – Jgunzblazin