我通过传递输出有效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");
});
答案 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表示,无论它们是属性还是值,都必须是 用双引号括起来
答案 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,请尝试“清空缓存并重新加载”。