通过 JQuery 接收 AJAX 响应 JSON 时,括号表达式中缺少 )

问题描述 投票:0回答:1

在 JQuery ajax Get 中我使用以下内容,

var htm = $.ajax({
    type: "GET",
    url: "http://localhost/cake_1.2.1.8004/index.php/forms/getFormEntry",
    async: false
}).responseText;

alert(htm);

var myObject = eval('(' + htm + ')');

alert(myObject);

我的 getFormEntry 的 cakePHP 代码是

$data = array();
foreach ($formid as $r): 
    array_push($data, array('id' => $r['Form']['id']));
endforeach; 
echo json_encode(array("attributes" => $data));

我的

alert(htm)
显示

Array{"attributes":[{"id":"21"},{"id":"20"},{"id":"19"},{"id":"18"},{"id":"17"},{"id":"16"},{"id":"15"},{"id":"14"},{"id":"13"},{"id":"12"},{"id":"11"},{"id":"10"},{"id":"9"},{"id":"8"},{"id":"7"},{"id":"6"},{"id":"5"},{"id":"4"},{"id":"3"},{"id":"2"},{"id":"1"}]}

我想获取属性id -21。 为此,我使用了 myObject,但在括号中显示错误为缺少 )。

请建议如何解决此问题。

php jquery json ajax cakephp
1个回答
3
投票

您想要使用 jQuery 的内置 JSON 支持。另外,您可能不想使用同步 Ajax。尝试以下操作; Ajax 请求完成后,该函数将被调用,并且您将可以在函数中以“json”形式访问 JavaScript 对象。

$.getJSON("http://localhost/cake_1.2.1.8004/index.php/forms/getFormEntry", function(json) {
  // access to object here as "json". No need to mess with eval
})
© www.soinside.com 2019 - 2024. All rights reserved.