2017-01-16 150 views
-2

我的JSON調用使用Flickr API並在Dreamweaver中正確返回圖像 - 但它在Chrome中無法正常工作。JSON在瀏覽器中不起作用,但在Dreamweaver中工作

調試後,它只是跳過下面的代碼的功能(數據)部分:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", { 
    tags: keyword, 
    tagmode: "any", 
    format: "json" 
}, function(data) { 
    alert("Got JSON"); 
    var rnd = Math.floor(Math.random() * data.items.length); 

    var image_src = data.items[rnd]['media']['m'].replace("_m", "_b"); 

    [...] 
}); 

任何想法嗎?我聽說這可能與瀏覽器安全性無關,而不允許操作。

+2

你打開開發者工具('F12'),並檢查是否有一個錯誤在那裏? –

+0

@ ssc-hrep3我已經完成了,沒有記錄錯誤。我添加了換行符,它似乎跳過了函數(數據)部分。 –

+1

您是否檢查網絡標籤?那裏有錯誤嗎?很可能是的,如果該功能沒有執行。 –

回答

0

我已經爲此添加了評論,但是由於我想添加更多信息,我會創建一個答案。

我很確定這是一個與「關鍵字」變量有關的問題,因爲「」charlieftl「已經在評論中說過,如果您對關鍵字進行硬編碼,請求會正常工作 getJSON函數有3個參數:網址,您提供給該網址的數據以及您的成功回調函數。正如其名稱所示,成功回調函數只會在您的請求成功時纔會執行,如果不成功,那麼它只會看起來好像它。跳過

一件事,你能做的,就是用更明確的回調函數,以避免一些混亂,比如:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", { 
    tags: keyword, 
    tagmode: "any", 
    format: "json" 
}) 
.done(function(data){ 
    alert("Got JSON"); 
    var rnd = Math.floor(Math.random() * data.items.length); 

    var image_src = data.items[rnd]['media']['m'].replace("_m", "_b"); 

    [...] 
}) 
.fail(function(jqxhr, textStatus, error){ 
    //do something with the error 
}); 

這樣,您將避免這些混淆,並且您還將能夠看到確切的錯誤(或者您始終可以轉到網絡選項卡查看請求狀態和任何可能的錯誤消息)。

如果您想了解更多有關的getJSON功能,你可以在這裏閱讀文檔:http://api.jquery.com/jquery.getjson/

相關問題