【问题标题】:how to rectify the Uncaught SyntaxError: Unexpected identifier error in getting json response using jquery?如何纠正 Uncaught SyntaxError: Unexpected identifier error in getting json response using jquery?
【发布时间】:2012-07-04 22:01:29
【问题描述】:

我正在尝试让 jQuery 移动应用程序以 json 格式从服务器读取数据。什么时候 我加载页面,我收到类似'Uncaught SyntaxError:Unexpected identifier'之类的错误 在我的 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_encode($rtnobj); 的输出吗
  • ({"message":{"success":true,"result":[{"lead_no":"LEA11","lastname":"Venu","firstname":"Yatagiri" ,"company":"RSalesArm IT Services Ltd","email":"venu_yatagiri@rsalesarm.com","id":"10x125"}]}})
  • @cheliyan 您可以编辑自己的问题以插入任何 cmets 的答案;以后访问该站点的任何访问者都将看到完整的问题及其所有详细信息。你为什么要在'('. json_encode($rtnobj) . ')' 中添加圆括号——我认为这可能是错误……

标签: php javascript jquery jsonp


【解决方案1】:

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

"firstname":"Yatagiri",

以下内容:

"firs?tname":"Yatagiri",

...firstname中的st之间有一个字符。

这里的viewsource给我看:

firs‌​tname

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

【讨论】:

    【解决方案2】:

    我认为你的错误在于

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

    它应该是

    echo json_encode( $rtnobj );
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多