使用getJSON()获取JSON的问题

时间:2012-12-27 17:09:24

标签: php jquery json drupal

我试图让我的javascript从我网站的另一个页面上的网址中读取JSON。计划是使用一个链接存储在该URL上并将其显示在我站点的首页上。我之前能够做类似的显示,所以我觉得这次很容易。出于某种原因,getJSON甚至没有从我的URL读取JSON,我很确定它是正确的,我修改了之前显示的代码。

此代码创建JSON(在PHP中):

function tf_feature_url_callback() {
  // get last row from the table
  $qry = 'SELECT * FROM tf_daily_featured_item ORDER BY fiid DESC LIMIT 1';
  $result = db_query($qry);
  $linkData = db_fetch_object($result);
  $data = array('link'=>$linkData->link);
  // encode the data as a json string
  $json_link = json_encode($data);
  echo $json_link;
}

JSON在页面上显示为:

{"link":"test.com"}

这是JavaScript:

// this is the url with JSON data
var urlURL = '/tf_feature/get_url';

$(document).ready(function() {
    $.getJSON(urlURL, function(data) {
        alert("TEST");
    });
});

我没有收到警报,所以我很确定我的javascript甚至没有进入getJSON函数。

您可以在网站上调用getJSON的次数是否有限制?我已经打了好几次了。

编辑:

这是我的回调(我正在使用Drupal,这是一个模块)

// callback for the url
  $items['tf_feature/get_url'] = array(
    'title' => 'Featured Item URL Callback',
    'page callback' => 'tf_feature_url_callback',
    'access arguments' => 'access content',
    'type' => MENU_CALLBACK
  );

1 个答案:

答案 0 :(得分:2)

好的,首先我必须说我在urlURL畏缩;-)但是继续前进,这里没有足够的信息来完全诊断你的问题。很可能你的代码没有运行;也许页面已经在你的onReady运行时加载了?然后,也许不是;没有更多信息,很难说。

我强烈建议您使用适用于Firefox的Firebug插件,或使用Chrome(内置)开发人员工具。这些中的任何一个都能告诉你AJAX请求是否正在发生,以及它是否正在发生什么回来。此外,您可以在代码中添加debugger行,这些工具在点击这些行时会暂停,让您可以看到正在发生的事情(您可以检查变量值等)。

尝试使用其中一种工具,我真的希望你能够自己调试这个问题。