【问题标题】:Problems getting JSON with getJSON()使用 getJSON() 获取 JSON 的问题
【发布时间】:2012-12-27 17:09:23
【问题描述】:

我试图让我的 javascript 从我网站另一个页面上的 url 读取 JSON。计划是在该网址上存储一个带有链接的图像,并将其显示在我网站的首页上。我之前能够为类似的显示器做到这一点,所以我认为这次会很容易。出于某种原因,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
  );

【问题讨论】:

  • 如果您要查找的请求被 a) 触发并且 b) 取回数据,请检查网络流量。通常没有这样的限制,您可以触发尽可能多的请求(并且您的浏览器能够触发并且您的服务器能够接受)。阅读:如果你轰炸你的服务器使其崩溃,或者你轰炸浏览器使其崩溃,事情往往无法正常工作。
  • 另请查看console.log 以及您如何在浏览器中使用开发者工具。
  • 好的,谢谢,我试试
  • 是的,提高你的调试技能,这对你最有帮助。
  • 你是如何在你的服务器上执行tf_feature_url_callback函数的?

标签: php jquery json drupal


【解决方案1】:

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

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

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

【讨论】:

  • 是的,我知道。我还在测试它,所以稍后会改变。
  • Safari 也内置了开发者工具。不知道它是否可以与 firebug 和 chrome 检查器相媲美,但您也许可以将其包含在您的答案中。
  • 我喜欢 chromes 工具。我现在正在调查检查员
  • @11684 我从来没有使用过 Safari 的工具,所以我不能真正与他们交谈(但是,嘿,他们不会比微软更糟糕吧?)。不过感谢您的评论,因为未来使用 Safari 的读者可能更愿意尝试这些工具。
  • @user 太棒了......我只是在嘲笑你urlURL :-)
猜你喜欢
  • 2012-01-18
  • 2017-11-18
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2014-02-22
相关资源
最近更新 更多