我無法使用此腳本在瀏覽器中顯示來自url的jSON數據,但我找不到錯誤的來源。使用jQuery無法在phonegap中檢索jSON值
的URL(http://www.entertainmentcocktail.com/cp/index.php)包含我的理解是有效的JSON數據,但沒有什麼回來,當我使用此代碼:
<script type="text/javascript" src="cordova-2.3.0.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var output = $('#output');
$.ajax({
url: 'http://www.entertainmentcocktail.com/cp/index.php',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
$.each(data, function(i,item){
var name = '<h1>'+item.location+'</h1>'
+ '<p>'+item.id+'</br>';
output.append(name);
});
},
error: function(){
output.text('There was an error loading the data.');
}
});
});
</script>
編輯:使用JSON數據的目標頁面生成從數據庫中使用此代碼的信息:
<?php
header('Content-type: application/json');
$server = "SERVER";
$username = "USER";
$password = "PASS";
$database = "DB";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$sql = "SELECT id, name, location FROM table_name ORDER BY id";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
while($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
mysql_close($con);
echo $_GET['jsoncallback'] . json_encode($records);
?>
它看起來是最後一個';'打破了JSON解析器。嘗試刪除它。另外,不需要確定整個json字符串周圍的'()「。 – marekful
您是否指''之前的';'?如果是這樣,我刪除它,沒有運氣 - 相同的結果。 – Ben
當我獲取示例URL時,最後一個字符是';'。如果將該頁面的內容作爲JSON字符串傳遞,則由於最後一個字符而無效。 – marekful