您好我有一个奇怪的问题。我正在进行AJAX调用以获取对象数组并返回请求:
[{
title: 'xxx xxx xx ',
start: '2015-11-23',
end: '2015-11-24',
color: '#99a5a8',
customer_name: 'xxx xxx',
priority: 0,
half_day_dates: ['1968-01-01']
},
{
title: 'xxxx xx xxx ',
start: '2015-11-23',
end: '2015-11-24',
color: '#99a5a8',
customer_name: 'xxx',
priority: 0,
half_day_dates: ['1968-01-01']
},
{
title: 'xxx xxx xxx ',
start: '2015-11-23',
end: '2015-11-24',
color: '#99a5a8',
customer_name: 'xxx',
priority: 1,
half_day_dates: ['1968-01-01']
}];
我的AJAX调用如下所示:
$.ajax({
type: 'POST',
url: 'ajax/calendar_ajax.php',
data: events_to_render,
dataType: 'json',
success: function(data)
{
console.log(data);
}
}).fail(function() {
});
所以问题是JS认为返回结果是某种类型的HTML,因为console.log(data)
将它作为文本而不是JS数组输出,所以我不能遍历对象数组。有任何想法吗? (我确信我错过了一些简单的事情。)
解答:
感谢大家帮助我,最终解决方案非常简单:
我所要做的只是eval(data)
,它将我的文本转换为适当的JS对象数组。
答案 0 :(得分:3)
success: function(data){
var json = JSON.parse(data);
console.log(json[0]["start"]); //will output '2015-11-23'
}
答案 1 :(得分:1)
将json标题header('Content-Type: application/json');
添加到ajaxed php&回显json编码数据echo json_encode(array('data' => $data));
答案 2 :(得分:0)
感谢大家帮助我,最终解决方案非常简单:
我所要做的只是eval(data)
,它将我的文本转换为适当的JS对象数组。