我正在尝试从jQuery调用Ajax调用返回由PHP生成的JavaScript数组,但无法访问它。这就是我在做的事情:
我在onLoad上运行以下代码:
$(function() {
jQuery.ajax({
url: 'retrieve.php',
success: function(data) {
},
async: false
}, "script");
retrieve.php 会返回以下内容( retrieve.php 执行格式化,并将其回显):
var data = {
"info" : [{
"title": "Title",
"description": "Description"
}],
"playlist" : [
{
"title": "In This Place",
"subTitle": "Excalibur",
"href": "http://localhost/manger/ny/#desemberkonsert_in-this-place",
"url": "../flv/desemberkonsert/21_in_this_place.flv",
"thumbnail": "../flv/desemberkonsert/21_in_this_place_thumbnail.png",
"time": "5:39"
}, {
"title": "Black Hole",
"subTitle": "Excalibur",
"href": "http://localhost/manger/ny/#desemberkonsert_black-hole",
"url": "../flv/desemberkonsert/22_black_hole.flv",
"thumbnail": "../flv/desemberkonsert/22_black_hole_thumbnail.png",
"time": "4:26"
}]
}
然后我尝试使用例如$("#placeholder").text(data.playlist[0]["title"]);
当我将数据直接复制并粘贴到文件上时,该数组可以正常工作,但当作为回调返回时,它会失败。如何访问返回的数组?
答案 0 :(得分:1)
您应该只返回对象,而不是将对象分配给名称的JavaScript字符串。这不是JSON的回应。
使用该对象的代码应该在ajax调用的成功处理程序中,而不是在其他地方使用单独的代码。
答案 1 :(得分:0)
您可能需要使用[]表示法访问数据,而不是。对象表示法:
data["playlist"][0]["title"]