2017-03-05 42 views
0

我想從我的Web主機上託管的PHP腳本中獲取JSON數據(本地在Xampp中)。如何從託管的PHP腳本使用JavaScript獲取JSON數據?

PHP腳本是這樣的:

<?php 

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET, POST'); 

// Creating the data array 
$data = array(
    'id' => '1', 
    'url' => 'http://twitter.com', 
    'text' => 'test 001', 
); 

header('Content-Type: application/json'); 
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); 

?> 

當直接從服務器(http://website.com/php/script.php),它會顯示數據:

{ 
    "id": "1", 
    "url": "http://twitter.com", 
    "text": "test 001" 
} 

和虛線HTML/JS,其應該輸出這樣的:

<!DOCTYPE html> 
<html> 
<head> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

<script> 

$.getJSON('http://website.com/php/script.php', function(data) { 
    var items = []; 

    $.each(data, function(key, val) { 
    items.push('<li id="' + key + '">' + val + '</li>'); 
    }); 

    $('<ul/>', { 
    'class': 'my-new-list', 
    html: items.join('') 
    }).appendTo('body'); 
}); 

</script> 

</head> 

<body> 

<span id="output"></span> 

</body> 
</html> 

我在xampp中運行html作爲.php腳本,我不確定是否在tha t與jQuery或普通的JS有什麼區別,但大多數情況看起來不錯。

我該如何找回數據「1」,「http://twitter.com」和「test 001」等?

+1

它工作得很好,所以如果你沒有得到任何東西,也許你的路徑是錯的?現在測試了PHP腳本和HTML頁面,並且它們都正常工作(將路徑更改爲PHP腳本,除此之外它們完全相同)。 – junkfoodjunkie

+0

這很奇怪,我相信路徑沒問題。我不知道這是否是一個本地問題,我會嘗試在網上託管它,看看會發生什麼。 – zeddex

+0

它現在似乎正在工作,就像您將.php重命名爲html後所說的那樣。 – zeddex

回答

0

在這種情況下的問題是,我在xampp中運行html作爲.php文件,由於某種原因導致它不返回任何數據。

將它改爲.html後,它運行良好。

+0

如果是這種情況,那麼您的服務器設置存在更大的問題。根本不需要改變延伸,不應該有所作爲。而且,經測試,對我的WAMP或MAMP服務器沒有影響。從來沒有真正喜歡XAMPP自己,總是認爲這是更多的工作,而不是值得讓它啓動和運行。 – junkfoodjunkie