繁体   English   中英

在jQueries .getJSON命令上跳过回调函数

[英]Callback function being skipped on jQueries .getJSON command

我有以下代码片段:

$('input#teamName').live('blur', function() {
  var value = $(this).val();
  if (value) {
    $.getJSON('api/event_company/'+value, function(data) {
      console.log('why does this not want to work?');
    });
  }
});

基本上,它所做的就是在表单字段更改时从服务器请求一些数据。 我的问题是,即使我可以使用Firebug看到回调函数已成功向服务器发送请求并收到有效的JSON响应,回调函数中的任何内容也不会被调用。

如果我将getJSON参数更改为:

$.getJSON('api/event_company/'+value, alert('Blah'));

然后,警报按预期方式弹出。 有什么想法可能导致这种现象吗?

如果JSON无效,则解析将失败,并且不会调用处理程序。 getJSON文档:

重要提示 :从jQuery 1.4开始,如果JSON文件包含语法错误,则请求通常会静默失败。 因此,请避免对JSON数据进行频繁的手动编辑。 JSON是一种数据交换格式,其语法规则比JavaScript的对象文字表示法严格。 例如,以JSON表示的所有字符串,无论它们是属性还是值,都必须用双引号引起来。 有关JSON格式的详细信息,请参见http://json.org/

查看JSON是否有效

您的第二个示例不正确。 应该是

$.getJSON('api/event_company/'+value, function() {
    alert('Blah');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM