1

我试图让我的 javascript 从我网站另一个页面上的 url 读取 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
  );
4

1 回答 1

2

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

我强烈建议获取 Firefox 的 Firebug 插件,或者使用 Chrome(内置)开发工具。其中任何一个都能够告诉您 AJAX 请求是否正在发生,如果正在发生,将会返回什么。此外,您可以debugger在代码中添加行,当遇到这些行时,这两个工具都会暂停,让您查看发生了什么(您可以检查变量值等)。

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

于 2012-12-27T17:15:36.463 回答