我是jQuery的新手,我有一个简单的jQuery脚本。
我把它放在我的标题中:
<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'/>
在我的身上,我有这个:
<script type='text/javascript'>
$(document).ready(function() {
alert(1);
$.getJSON('http://puppygifs.tumblr.com/api/read/json', function(data) {
alert(2);
});
});
</script>
但是,虽然Firebug说JSON被访问并且没有错误,但我只获得第一个警报,而不是第二个警报。为什么第二个警报不执行?
答案 0 :(得分:3)
http://puppygifs.tumblr.com/api/read/json
返回的json响应无效json,导致成功处理程序无法执行。
如果你看第一行的响应是var tumblr_api_read={
,这是无效的。要查看有效的json示例结帐:http://json.org/example.html
Jquery文档中记录了这种情况:
从jQuery 1.4开始,如果JSON文件包含语法错误,那么 请求通常会无声地失败。避免经常手工编辑 因此JSON数据。 JSON是一种数据交换格式 语法规则比JavaScript的对象更严格 字面符号。例如,所有以JSON表示的字符串, 无论是属性还是价值,都必须附上 双引号。有关JSON格式的详细信息,请参阅http://json.org/。
另外请务必使用结束标记关闭脚本标记,而不是速记结束标记
<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'></script>
如果您从提供域外访问此json,则必须指明其jsonp
这可以通过将&callback=?
附加到网址来完成,如jQuery文档中所述
$(document).ready(function() {
alert(1);
$.getJSON('http://services.faa.gov/airport/status/SFO?' +
'format=application/json&callback=?', function(data){
alert(2);
});
});
JS Fiddle http://jsfiddle.net/J5jYW/