$ .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");
});
与同样保证Firebug从服务器获取有效的JSON。
我改变了getJSON并尝试了,仍然没有触发回调。如何验证firebug中的json?我在Jsonlint中验证了来自JSP的响应是有效的JSON – 2009-11-16 08:30:18
在Firebug的Net选项卡中,您将能够看到所有的请求/响应。 – 2009-11-16 09:16:18
$阿贾克斯( { 类型: “GET”,网址:URL, 数据类型: “JSON”, 成功:函数(结果){警报( “成功!”);}, 错误:函数(XMLHttpRequest的, textStatus,errorThrown) {alert(textStatus); alert(errorThrown);} }); 当我使用$ .ajax而不是$ .getJSON时,得到一个解析错误。我从JSP获取的数据是 {“data”:[[[1258185480000,4.39],[1258186020000,4.31],[1258184940000,4.39],[1258183560000,4.39]]]}} 我已验证JSON在jsonlint中是正确的。如何找到解析错误是什么? – 2009-11-16 09:34:53
我刚在这花了大约两个小时。我发现另一篇文章讨论了$.getJSON
和$.get
之间的区别,以及它们之间的区别。所以我换出了我的getJSON()
get()
它工作。
(也想提一提,我也验证了一切被从轨动作记录和日志记录了我从JavaScript的外回调函数可以工作。)
我相信$ .getJSON和$ .get之间的不同在于内容类型(JSON vs XML)。 – 2012-01-15 02:05:26
我不确定差异,但$ .get没有返回JSON对象。多谢你们。 – 2017-04-29 05:52:24
$ .getJSON也就无法使用没有合适的JSON对象进行回调处理。
jQuery文档的链接将极大地提高您的答案(这里是:http://api.jquery.com/jQuery.getJSON/) – 2012-12-09 19:43:22
真的,谢谢。 – 2012-12-14 02:11:43
这帮了!我正在测试铬64.0.3282.167。我真的被卡住了,因为chrome显示电话已经打完了,并且有所有预期的标题和格式。 然后我看到这个评论,并认为我应该为json找到一个linter。果然,我发现jsonlint.com,它显示[失败](https://jsonlint.com/?json=%7B%27hello%27:%20%27world%27%7D)它花了一段时间才意识到我有单引号。 [JSON规范](http://www.json.org/)指定双引号。有了这个变化$ .getJOSN()按预期工作。 – 2018-03-01 02:53:09
$.getJSON(URL, function(data) {
alert("hello");
});
不过是简写的Ajax调用
$.ajax({
dataType: "json",
url: URL,
data: data,
success: function(data) {
alert("hello");
}
});
但
Important: As of jQuery 1.4, if the JSON file contains a syntax error, the request will usually fail silently ... For example, all strings represented in JSON, whether they are properties or values, must be enclosed in double-quotes
我改的getJSON和尝试,还是回调没有被触发。如何验证firebug中的json?我在Jsonlint中验证过,来自JSP的响应是有效的JSON – 2009-11-16 08:28:40
您的服务器是否发送正确的MIME类型:'application/json'或'application/javascript'? – 2009-11-16 08:34:44
$阿贾克斯({ 类型: “GET”, 网址:网址, 数据类型: “JSON”, 成功:函数(结果){ 警报( “成功!”);} , 错误:函数( XMLHttpRequest,textStatus,errorThrown){ alert(textStatus); alert(errorThrown); } }); 当我使用$ .ajax而不是$ .getJSON时,出现分析错误。我回来从JSP的数据是{ “数据”:[[[1258185480000,4.39], [1258186020000,4.31], [1258184940000,4.39], [1258183560000,4.39]]]} 我已验证JSON在jsonlint – 2009-11-16 09:32:50