2015-07-19 95 views
1

這是一種有效的方法:我想通過源代碼保持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> 

回答

3

您可以直接echo,因爲你已經在$json的響應從PHP值。例如:

<div class="in-theaters-soon"> 
    <p><?php echo $json['movies'][0]['title']; ?></p> 
</div> 
+0

嗨littleibex,我更喜歡使用JavaScript來顯示數據,因爲我更熟悉它的語法。你認爲上述方法有效嗎?以及您如何看待可以在源代碼中查看JSON? – Jgunzblazin

+1

您的方法是有效的,因爲它可以完成工作,即使這是一個非常迂迴的做法。您的JSON在源代碼中查看的事實不會造成任何傷害,因爲您無論如何都以一種非常好的方式(使用HTML)將其顯示給用戶。另外,由於它只是JSON,因此無法回溯JSON的來源和方式。 – littleibex

+0

好的,謝謝你的輸入 – Jgunzblazin

1

總是對打印的數據進行一些驗證。

<?php 
$apikey = "xxxx"; 
$data = file_get_contents('http://url?apikey=' . $apikey); 
if (is_array($data) && ! empty($data)) { 
    /** 
    * Do something. 
    /**/ 
} 
0

你可以做這樣的事情,如果你有一個單獨的文件的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 
}); 

希望這會有所幫助。