简单的jQuery脚本无法执行任何操作

时间:2013-09-01 20:50:56

标签: javascript jquery getjson

我是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被访问并且没有错误,但我只获得第一个警报,而不是第二个警报。为什么第二个警报不执行?

1 个答案:

答案 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/

getJson Documentation

另外请务必使用结束标记关闭脚本标记,而不是速记结束标记

<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/