$ .getJson回调函数不起作用

时间:2009-11-16 07:57:51

标签: jquery ajax getjson

我通过传递输出有效JSON作为响应的参数来调用JSP,但$.getJson回调函数仍然没有被触发。   JSP页面输出是

 { "data": [ [ [ 1258185480000,4.39], 
               [ 1258186020000,4.31],
               [ 1258184940000,4.39],
               [ 1258183560000,4.39]  ] ] }

URL指向JSP页面

我的 jquery 代码是

<script id="source" language="javascript" type="text/javascript">
$(function () {   
  alert("before");
  $.getJson(URL,function(json){
            alert("hello");
          var plot = $.plot($("#placeholder"), json.data, options);
    });

 alert("after");
});

6 个答案:

答案 0 :(得分:9)

该功能为$.getJSON而非$.getJson

答案 1 :(得分:6)

$.getJSON( URL, function(data) {
  alert("hello");
});

只不过是ajax call的简写

$.ajax({
  dataType: "json",
  url: URL,
  data: data,
  success: function(data) {
    alert("hello");
  }
});

BUT

  

重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,   请求通常会以静默方式失败...例如,所有字符串   用JSON表示,无论它们是属性还是值,都必须是   用双引号括起来

来源:jquery.getjson docs

答案 2 :(得分:2)

我只花了大约两个小时。我发现了另一篇文章讨论了$.getJSON$.get之间的区别以及它们之间的区别。所以我将getJSON()替换为get()并且有效。

(还要提一下,我还通过从rails操作中记录并从javascript 外部回调函数记录了我可以做的事情来验证其他所有工作。)

答案 3 :(得分:2)

$。getJSON不会使用没有合适的JSON对象的回调来处理。

答案 4 :(得分:1)

还要确保Firebug从服务器返回有效的JSON。

答案 5 :(得分:0)

对于jQuery 3.4.1:

$.getJSON("test.json", function (json) {
    console.log('Got JSON');
    console.log(json);

})
.fail(function (jqxhr, textStatus, error) {
    var err = textStatus + ", " + error;
    alert("There has been an error. If the problem persists contact the customer service");
})
.always(function () {
    console.log("complete");
});

如果您认为JSON可以使用并且您使用的是chrome,请尝试“清空缓存并重新加载”。