2010-05-26 26 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