我正在对页面/person/steve
进行AJAX调用:
$.ajax({
url: '/person/steve',
method: 'POST',
dataType: 'json',
success: function(response){
console.log(JSON.stringify(response));
}
});
/person/steve
由以下代码组成:
$person = array(
'name' => 'Steve',
'twitter' => '@stevelindstrom'
);
echo json_encode(array('data' => $person));
die;
现在,在我的php中,当我使用PEAR Log类记录json_encode
的结果时,我得到:
{"data":{"name":"Steve","twitter":"@stevelindstrom"}}
这是我期望的,但如果我查看Chrome开发工具中的响应,则会显示:
[{"data":{"name":"Steve","twitter":"@stevelindstrom"}}]
知道为什么我的对象会陷入阵列?我有其他几乎相同的页面(只是不同的数据),它们会出现在我期望它们......
编辑:我尝试使用JSON_FORCE_OBJECT并获得了相同的结果。
答案 0 :(得分:0)
尝试添加json_encode
作为第二个参数JSON_FORCE_OBJECT
你是否返回JSON或字符串,我的意思是Content-type
标题,是text/html
还是(在这种情况下应该是application/json
?
或者也许只是JSON.stringify方法将其包装到一个数组中,尝试使用dragonfly或其他工具来查看服务器原始响应的来源。
答案 1 :(得分:0)
根据您的问题,响应是一个json字符串。哪会使JSON.Stringify调用多余。删除它,看看会发生什么。