【问题标题】:jquery, jsonp and no successjquery,jsonp并没有成功
【发布时间】:2010-05-27 00:40:55
【问题描述】:

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

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

但我的警报永远不会触发。

知道我需要做些什么来确保这会奏效吗?

问候 达米安

【问题讨论】:

    标签: jquery jsonp


    【解决方案1】:

    我相信,如果您使用的回调查询字符串参数名称与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 把它放进去;一个快速的实验应该会告诉你。

    【讨论】:

      【解决方案2】:

      试试这个:

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

      这个输出是什么?

      【讨论】:

      • 那个 URL 怎么了?肯定是初始 ? 开始查询字符串。
      【解决方案3】:

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

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

      而 JSONP 中的 P 表示您需要返回

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

      其中callback1234jsoncallback 参数的值。 (虽然 URL 显示 jsoncallback=?,但 JQuery 会特别解释它,并将 ? 替换为生成的唯一字符串。)

      另外,what T. J. Crowder said

      【讨论】:

        【解决方案4】:

        为大家的回答干杯。

        事实证明,这是非常挑剔的,通过应用你们向我展示的点点滴滴的工作

        这里是我的 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 响应标头view source 服务器 Apache-Coyote/1.1 内容类型 application/json;charset=ISO-8859-1 内容-语言 en-US 内容长度 80 日期 2010 年 5 月 26 日星期三 16:38:43 GMT 请求标头view source 主机本地主机: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、/ Accept-Language 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-With XMLHttpRequest 推荐人http://localhost:8080/WWTestHarnessWEB/jsp/ReadersToolkit/Json.jsp Cookie JSESSIONID=93FDA3BD0D2450D7FA4BD9A76C388F8A

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

        再次感谢 达米安

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-26
          • 2013-06-18
          • 2011-01-23
          • 2011-11-15
          • 2012-06-25
          • 1970-01-01
          • 1970-01-01
          • 2021-04-04
          相关资源
          最近更新 更多