如何纠正未捕获的语法错误:使用 jquery 获取 json 响应时出现意外的标识符错误


how to rectify the Uncaught SyntaxError: Unexpected identifier error in getting json response using jquery?

我正在尝试让jQuery移动应用程序以json格式从服务器读取数据。什么时候我加载页面,出现类似"未捕获语法错误:意外标识符"之类的错误在我的 Chrome 控制台中。我是json和jquery的新手,所以给我任何纠正此错误的建议。提前谢谢。

这是我的Javscript/jQuery:

$(document).ready(function () {
    $('#leads-list').click(function () {
        $.ajax({
            url: 'http://fg.com/rest/view.php?sessid=35e85b084ff41894170a0',
            type: 'POST',
            dataType: 'jsonp',
            jsonp: 'callback',
            success: successData,
            error: function () {
                alert('Error');
            }
        });
        function successData(data) {
            var response = data.message;
            alert('data=' + response);
        }
    });
});

我的PHP代码是:

    $jsonResponse = Zend_JSON::decode($response['body']);
$rtnobj->message=$jsonResponse;
echo $_GET['callback']. '('. json_encode($rtnobj) . ')';    

JSON 响应:

({
    "message": {
        "success":true,
        "result":[
            {
                "lead_no":"LEA11",
                "lastname":"Venu",
                "firs‌​tname":"Yatagiri",
                "company":"RSalesArm IT Services Ltd",
                "email":"venu_yatagiri@rsalesarm.com",
                "id":"10x125"
            }
        ]
    }
})

当我将上面的 json 复制到我的编辑器中时,我看到而不是

"firstname":"Yatagiri",

以下内容:

"firs?tname":"Yatagiri",

名字中的 ST 之间有一个字符。

这里的视图源代码向我展示了:

firs‌​tname

当这些字符来自您的 PHP 脚本时,您应该删除它们。

我认为你的错误在行中

echo $_GET['callback']. '('. json_encode($rtnobj) . ')';

应改为

echo json_encode( $rtnobj );

要从 JSON 响应创建函数调用,请使用 JavaScript,而不是 PHP。