我试图让我的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
);
答案 0 :(得分:2)
好的,首先我必须说我在urlURL
畏缩;-)但是继续前进,这里没有足够的信息来完全诊断你的问题。很可能你的代码没有运行;也许页面已经在你的onReady运行时加载了?然后,也许不是;没有更多信息,很难说。
我强烈建议您使用适用于Firefox的Firebug插件,或使用Chrome(内置)开发人员工具。这些中的任何一个都能告诉你AJAX请求是否正在发生,以及它是否正在发生什么回来。此外,您可以在代码中添加debugger
行,这些工具在点击这些行时会暂停,让您可以看到正在发生的事情(您可以检查变量值等)。
尝试使用其中一种工具,我真的希望你能够自己调试这个问题。