2012-12-27 53 views
1

我試圖讓我的JavaScript從我的網站的另一頁上的URL讀取JSON。該計劃是將圖像與鏈接存儲在該網址上,並將其顯示在我網站的首頁上。我之前可以做到這一點,因爲我認爲這次會很容易。出於某種原因,getJSON甚至沒有從我的URL中讀取JSON,我確信它是正確的,我修改了前一個顯示的代碼。獲取JSON與getJSON()的問題

此代碼創建的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

檢查網絡流量,如果您要查找的請求是a)被觸發並且b)獲取數據。通常情況下沒有這樣的限制,你可以觸發儘可能多的請求(並且因爲你的瀏覽器可以觸發並且服務器可以訪問)。閱讀:如果你炸燬你的服務器,所以它崩潰或者你的瀏覽器被炸燬,所以它崩潰了,事情往往無法正常工作。 – hakre

+1

同時關注'console.log'以及您如何在瀏覽器中使用開發人員工具。 – hakre

+0

好的,謝謝,我會試試 – user

回答

2

好吧,首先,我不得不說,我在urlURL退縮;-)但繼續前進,這裏沒有足夠的信息來完全診斷你的問題。很可能你的代碼沒有運行;您的onReady運行時可能頁面已經加載?然後,也許不是;沒有更多的信息,這很難說。

我強烈建議要麼獲取Firefox的Firebug插件,要麼使用Chrome(內置)開發人員工具。其中任何一個都可以告訴你AJAX請求是否正在發生,以及是否正在發生。此外,您可以將debugger行添加到您的代碼中,並且這兩個工具在命中這些行時會暫停,讓您看到發生了什麼(可以檢查變量值等)。

嘗試使用這些工具之一,我真的希望你能夠自己調試這個問題。

+0

是的,我知道。我仍在測試它,所以稍後會改變。 – user

+0

Safari也有內置的開發工具。不知道它是否與螢火蟲和鍍鉻檢查員相似,但你也許可以將其納入你的答案。 – 11684

+0

我喜歡chromes工具。我正在看着檢查員現在 – user