我正在对页面/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中,当我使用PEARLog类记录json_encode
的结果时,我得到:
{"data":{"name":"Steve","twitter":"@stevelindstrom"}}
这是我所期望的,但如果我看看Chrome开发工具中的响应,它会显示:
[{"data":{"name":"Steve","twitter":"@stevelindstrom"}}]
知道为什么我的物体会卡在一个数组里吗?我有其他几乎相同的页面(只是不同的数据),它们显示为我所期望的…
编辑:我尝试使用JSON_FORCE_OJECT,得到了相同的结果。
尝试将json_encode
添加为第二个参数JSON_FORCE_OBJECT
返回JSON还是字符串,我指的是Content-type
头,是text/html
还是(在这种情况下应该是)application/json
?或者只是JSON.stringify方法将其封装到一个数组中,尝试使用dragonfly或其他工具来查看服务器原始响应的来源。
根据您的问题,响应是一个json字符串。这将使JSON.Stringify调用变得多余。去掉它,看看会发生什么。