有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法使用jQuery在phonegap中检索jSON值

我无法使用此脚本在浏览器中显示url中的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);
?>

共 (1) 个答案

  1. # 1 楼答案

    您是否从同一个域(www.entertainmentcocktack.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>