2011-10-11 91 views
1

我已经在我的代码得到这个:jQuery的.getJSON()回调函数不执行

.getJSON("http://myUrl.com", function(data){ alert("callback being called");}); 

用我的服务器端代码一个破发点,我可以看到的JSON流从URL返回。在Chrome中进行浏览我从来没有看到警报被调用(或其中的任何其他代码)。当我使用chrome开发人员工具查看网络流量时,我看到正在对myURl进行调用(并且我可以将响应看作我期待的jSON字符串)。它看起来回调函数永远不会执行。

任何人都知道为什么它不会执行?

+2

我假设你的意思是'$ .getJSON'而不是'.getJSON'? – Alex

+1

你的json有效吗? http://stackoverflow.com/questions/770381/callback-function-doesnt-work-when-using-getjson-function-in-jquery – jrummell

+0

您的代码是否在不同的域上运行到'http:// myUrl.com' ? – Eric

回答

0

试试下面的第一,然后用你的网址替换

<script type="text/javascript"> 
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", 
    function (data) { alert("callback being called");} 
    ); 
</script> 
1

我有几个问题,其中大部分通过在这里深入挖掘得到解决(我的不好,但也许这可以帮助其他人)。

  1. 我没有返回正确的内容类型(应用/ JSON)
  2. 我的JSON没有被正确解析(我不得不在端部分号和额外逗号在数组声明http://paulisageek.com/json_validator/的端部帮验证我的JSON。
  3. 使用与错误绑定。阿贾克斯()方法,还帮我麻烦拍我的问题。

令人沮丧,因为没有异常/错误被扔它只是拒绝调用回调。