我无法使用此脚本在浏览器中显示来自网址的jSON数据,但我找不到错误的来源。
网址(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);
?>
答案 0 :(得分:0)
您是否从同一域(www.entertainmentcocktail.com)运行此代码?如果没有,您可能会遇到XSRF问题。
您使用什么浏览器进行测试?在Chrome中,您可以右键单击并转到“Inspect Element”,如果出现java脚本错误,则会在右下角有一个红色标记。您应该可以在此处找到更多信息。
http://cl.ly/image/261T3T360M34 - 右下角错误的屏幕截图。
你是如何生成json字符串的?理想情况下,您应该使用内置的PHP函数: http://php.net/manual/en/function.json-encode.php
更新
根据您的评论,您的问题是您的脚本的排序。改变它是这样的:
<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>