jQuery:从Ajax-callback返回javascript数组

时间:2011-02-05 19:43:37

标签: jquery

我正在尝试从jQuery调用Ajax调用返回由PHP生成的JavaScript数组,但无法访问它。这就是我在做的事情:

  1. 我在onLoad上运行以下代码: $(function() { jQuery.ajax({ url: 'retrieve.php', success: function(data) { }, async: false }, "script");

  2. 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" }] }

  3. 然后我尝试使用例如$("#placeholder").text(data.playlist[0]["title"]);

  4. 来访问此代码
  5. 返回“undefined”
  6. 当我将数据直接复制并粘贴到文件上时,该数组可以正常工作,但当作为回调返回时,它会失败。如何访问返回的数组?

2 个答案:

答案 0 :(得分:1)

您应该只返回对象,而不是将对象分配给名称的JavaScript字符串。这不是JSON的回应。

使用该对象的代码应该在ajax调用的成功处理程序中,而不是在其他地方使用单独的代码。

答案 1 :(得分:0)

您可能需要使用[]表示法访问数据,而不是。对象表示法:

data["playlist"][0]["title"]