1

私のサイトの別のページのURLからJSONを読み取るためにJavaScriptを取得しようとしています。計画では、その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、コードに行を追加することができ、それらの行にヒットすると両方のツールが一時停止し、何が起こっているかを確認できます(変数値などを検査できます)。

これらのツールの1つを使用してみてください。そうすれば、この問題を自分でデバッグできると期待しています。

于 2012-12-27T17:15:36.463 に答える