簡體   English   中英

我只是似乎無法使json工作。 句號。 我幾乎復制了http://api.jquery.com/jQuery.getJSON/但沒有運氣

[英]i just can't seem to make json work. full stop. i pretty much copied http://api.jquery.com/jQuery.getJSON/ with no luck


        $("#thumbnails .thumb").find(".viewsCount").each(function(){
        var PostID = $(this).html();
        $.getJSON("http://tom.is-a-geek.org/tumblr/counters/thomee/go.php?c=yeeeboiii&i=" + PostID + "&justCount=y&format=json&jsoncallback=?",function(data){
             $.each(data.items, function(i,item){
                //$(this).html(item.views); 
                alert(item.views);
                alert("sigh");
            });         
        });
    });

({
    "items": [
     {
        "views": "20"
     }
    ]
})

直播@ http://thomee.tumblr.com

任何援助將不勝感激。 :-(

由於安全原因,您無法執行跨站點getJSON 因此,要么在getJSON使用本地(我的意思是“相同域”中的本地)URL,要么嘗試使用JSONP hack /替代方法: http : //code.google.com/p/jquery-jsonp/

František所說 ,跨站點ajax( getJSONgetJSON的ajax)受Same Origin Policy限制。

但是,您有很多選擇:

  • 正如František所說,如果相關服務器支持JSON-P,則可以使用它。
  • 如果目標服務器支持CORS,並且您的訪客使用的瀏覽器也支持它(最新版本),則它將正常工作(除了支持CORS的IE版本(8和9)需要特殊處理,而不是像它那樣正常工作)在Firefox和Chrome中)。
  • 您可以使用YQL作為代理

(這是CW,因為它實際上只是František答案的一個很大的輔助。將所有這些都添加到該答案中並不感到舒適,盡管從理論上講,這當然是StackOverflow所要解決的所有問題,以協作方式回答問題。)


僅供參考,您引用的JSON:

({
    "items": [
     {
        "views": "20"
     }
    ]
})

...無效, JSON沒有括號運算符。 應該是:

{
    "items": [
     {
        "views": "20"
     }
    ]
}

您有時會在JSON文本附近看到括號的原因是,在評估JSON時,有時人們會使用JavaScript解析器來解析JSON(因為JSON是JavaScript的對象文字符號的子集):

var result = eval("(" + jsonString + ")");

他們放入括號以確保解析器在需要表達式的地方評估jsonString的內容。 但是括號不是JSON的一部分,如果使用引用的JSON,則正確的JSON解析器將失敗。 (使用這種eval技術: 當您知道JSON的來源值得信賴[您自己的服務器等]時, 使用它;否則,最好使用實際的JSON解析器來防御腳本注入攻擊,括號並不是遠程的。您可以在JSON的發明者Douglas Crockford的github頁面上找到三個JSON解析器-一個依靠eval但首先進行一些檢查,而兩個根本不使用eval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM