代码之家  ›  专栏  ›  技术社区  ›  Damien

jquery,jsonp没有成功

  •  1
  • Damien  · 技术社区  · 14 年前

    我的代码中有以下jquery $j.getJSON("http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htm?jsoncallback=?", {'uID': 1}, function(data){alert(data);});

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

    但我的警报永远不会响。

    你知道我需要做什么来确保这项工作有效吗?

    当做 达米安

    4 回复  |  直到 14 年前
        1
  •  2
  •   T.J. Crowder    14 年前

    我相信,如果回调查询字符串参数的名称与 callback (看起来你在用 jsoncallback 相反,您必须告诉jquery;请参见 jsonp 上的选项对象中的参数 $.ajax 打电话。这意味着你必须使用 ajax 而不是 getJSON 但这很容易。

    例如。:

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

    我不确定您是否需要(或应该)包括“jsonCallback=?”或者让jquery自己把它放到URL中;一个快速的实验应该会告诉你。

        2
  •  1
  •   Rixius    14 年前

    试试这个:

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

    这个输出是什么?

        3
  •  1
  •   Community M-A    7 年前

    您的服务器代码是否确实遵守 jsoncallback 参数?如果我正确理解你,你就回来了

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

    而jsonp中的p表示需要返回

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

    在哪里? callback1234 是的值 JSON回调 参数。(尽管网址上说 jsoncallback=? ,jquery对此进行了专门的解释,并替换了 ? 使用唯一生成的字符串。)

    也, what T. J. Crowder said .

        4
  •  0
  •   Damien    14 年前

    为大家的回答干杯。

    结果证明这是非常挑剔的,通过运用你们给我看的一些零碎的东西

    下面是我的jquery code j.getjson( “http://localhost:8080/wwtestharnessweb/readerstoolkitfinalcontroller.htm?JSONCALBACK =?”
    'uid':1,
    功能(数据、状态){ 如果(状态)!=“成功” { 警报(“状态为:”+状态); } var positiveCount=data.positiveCount;
    var negativecount=data.negativecount; $J('td[id*=“positivevoteid”]”).html(getcorrectCountString(positiveCount)); $J('td[id*=“negativevoteid”]”).html(getcorrectCountString(negativeCount)); }:< /代码>

    我的json响应如下'paramsheaderspostputresponsecachehtmljson 响应头视图源 服务器apache coyote/1.1 内容类型应用程序/json;字符集=ISO-8859-1 美国内容语言 内容长度80 日期:2010年5月26日星期三,格林尼治标准时间16:38:43 请求HeadersView源 主机本地主机:8080 用户代理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,en;Q=0.5 接受编码gzip,deflate 接受字符集ISO-8859-1,UTF-8;Q=0.7,*;Q=0.7 保持活力115 连接保持活动 内容类型应用程序/x-www-form-urlencoded x-requested-带xmlhttprequest 请参阅http://localhost:8080/wwtestharnesweb/jsp/readerstoolkit/json.jsp“rel=”nofollow noreferrer“>http://localhost:8080/wwtestharnesweb/jsp/readerstoolkit/json.jsp cookie jsessionid=93fda3bd02450d7fa4bd9a76c388f8a

    JSONP1274891923240(“positiveCount”:“0”,“negativeCount”:“999”)`

    再次感谢 达米安

    'td[id*=“positivevoteid”]').html(getcorrectCountString(positiveCount)); $J('td[id*=“negativevoteid”]”).html(getcorrectCountString(negativeCount)); (});

    我的json响应如下'paramsheaderspostputresponsecachehtmljson 响应头视图源 服务器apache coyote/1.1 内容类型应用程序/json;字符集=ISO-8859-1 美国内容语言 内容长度80 日期:2010年5月26日星期三,格林尼治标准时间16:38:43 请求HeadersView源 主机本地主机:8080 用户代理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,en;Q=0.5 接受编码gzip,deflate 接受字符集ISO-8859-1,utf-8;Q=0.7,*;Q=0.7 保持活力115 连接保持活动 内容类型应用程序/x-www-form-urlencoded x-requested-带xmlhttprequest 引用者 http://localhost:8080/WWTestHarnessWEB/jsp/ReadersToolkit/Json.jsp cookie jsessionid=93fda3bd02450d7fa4bd9a76c388f8a

    JSONP1274891923240(“positiveCount”:“0”,“negativeCount”:“999”)`

    再次感谢 达米安