2010-05-26 65 views
1

,我有以下的jQuery在我的代碼$j.getJSON("http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htm?jsoncallback=?", {'uID': 1}, function(data){alert(data);});jQuery的,JSONP並沒有成功

JSON的,我是回如下所示({"positiveCount":"0","negativeCount":"999"})

但我的警報從不開火。

任何想法我需要做以確保這將工作?

問候 達明

回答

2

我相信,如果您使用的回調查詢字符串參數的名稱不是callback(看起來您使用的是jsoncallback),那麼您必須告訴jQuery;請參閱$.ajax調用上的選項對象中的jsonp參數。這意味着您必須使用ajax而不是getJSON,但這很簡單。

例如爲:

$.ajax({ 
    url:  "http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htm?jsoncallback=?", 
    dataType: "json", 
    jsonp: "jsoncallback", 
    data:  {'uID': 1}, 
    success: function(data){alert(data);} 
}); 

我不知道你是否需要(或應該)包括 「jsoncallback =?」在URL中你自己或讓jQuery放入;一個快速實驗應該告訴你。

1

試試這個:

$j.getJSON(
    "http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htmjsoncallback=?", 
    {'uID': 1}, 
    function(data, status){ 
    alert(status); 
    }); 

請問這個輸出?

+0

該URL發生了什麼?當然,初始'?'開始查詢字符串。 – 2010-05-26 15:53:15

1

您的服務器代碼是否確實服從jsoncallback參數?如果我理解正確的話,你只是回到

({"positiveCount":"0","negativeCount":"999"}) 

而JSONP在P意味着你需要返回

callback1234({"positiveCount":"0","negativeCount":"999"}) 

其中callback1234jsoncallback參數的值。 (雖然URL說jsoncallback=?,JQuery專門解釋,並用一個唯一生成的字符串替換?。)

另外,what T. J. Crowder said

0

Cheers guys for the responses。

原來,這是非常挑剔和應用的點點滴滴什麼你們給我的工作

現在這裏是我的jQuery代碼$j.getJSON( "http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htm?jsoncallback=?",
{'uID': 1},
function(data, status){ if (status != 'success') { alert("Status is: " + status); } var positiveCount = data.positiveCount;
var negativeCount = data.negativeCount; $j('td[id*="posiiveVoteId"]').html(getCorrectCountString(positiveCount)); $j('td[id*="negativeVoteId"]').html(getCorrectCountString(negativeCount)); });

我的JSON迴應如下`ParamsHeadersPostPutResponseCacheHTMLJSON 響應Headersview源 服務器Apache的狼/ 1.1 內容類型的應用程序/ JSON的;字符集= ISO-8859-1 內容語言的en-US Content-Length的80 日期星期三,2010 5月26日十六時38分43秒GMT 請求頭文查看源文件 Host localhost:8080 User-Agent Mozilla/5.0(Windows; U; Windows NT 5.1; EN-US; rv:1.9.2.3)Gecko/20100401 Firefox/3.6。3 接受文本/ JavaScript中,應用/ JavaScript的,/ 接受語言EN-US,連接; Q = 0.5 接受編碼的gzip,放氣 接收字符集ISO-8859-1,utf-8; Q = 0.7,*; q = 0.7 保持活動115 連接保活 內容類型application/x-WWW窗體-urlencoded X-請求-使用XMLHttpRequest 的Referer http://localhost:8080/WWTestHarnessWEB/jsp/ReadersToolkit/Json.jsp 曲奇JSESSIONID = 93FDA3BD0D2450D7FA4BD9A76C388F8A

jsonp1274891923240 ({「positiveCount」:「0」,「negativeCount」:「999」})'

再次感謝 Damien