2012-02-29 41 views
0

你好,我一直在努力讓索姆json工作。JSON正在工作,但不能讓JSONP工作

我寫了這小小的一段代碼:

$.getJSON("/calendar/event/test", function(data) { 
    $.each(data, function(i,item){ 
    $('#test').append('<li>' + item.title + '</li>'); 
    }); 
}); 

這完美的作品,並附加標題從JSON對象返回...

什麼不工作是當我想要一個webapp來檢索數據。此webapp位於另一個域。

我試圖這樣做是爲了改變上面的JSON代碼放到一個簡單的JSONP一段代碼:

$.getJSON("http://domainname.com/calendar/event/test?callback=?", function(data) { 
    $.each(data, function(i,item){ 
    $('#test').append('<li>' + item.title + '</li>'); 
    }); 
}); 

但是,這是行不通的。我得到這個錯誤代碼:parsererror - 錯誤:沒有調用jQuery1710762373415816335_1330535356545 ...但是,如果我嘗試通過JSONP從例如維基百科 - 這工作。所以也許這是一個服務器設置或類似的東西?

我無法弄清楚這一點,任何方向的任何幫助,很高興欣賞!

在此先感謝!

回答

2

您的服務器需要返回正確的JSONP。 JSON與JSONP不同,JSONP有一個附加層,它被封裝在一個以包含回調名稱的GET參數傳遞後命名的回調中。例如,這將是有效的JSONP:

thecallbackname({"key":"value"}) 
+0

啊。好的謝謝。我會嘗試一下工作,並嘗試弄清楚它是如何工作的:) – 2012-02-29 17:19:27

+0

我發現本指南helpfull:http://www.ibm.com/developerworks/library/wa-aj-jsonp1/ – 2012-02-29 18:02:19