【问题标题】:my getJSON code doesn't work in jquery 1.4.2我的 getJSON 代码在 jquery 1.4.2 中不起作用
【发布时间】:2011-11-07 15:56:49
【问题描述】:

这是我关于 stackoverflow 的第一个问题。我只是想知道为什么我的 getJSON 代码不能与 jQuery 1.4.2 一起使用,但它可以与 jQuery 1.3.2 一起顺利运行

这是我的代码

$(document).ready(function(){
    $('td.hps_ajax a').click(function() {
        id = this.id.replace(/.*hps_ajax/,'');
        if(confirm('Anda yakin mau menghapus record ini?'))
            $.getJSON('../admin/media_admin/ajaxHapus/'+id, remove_row);
        return false;   
    }); 
})

function remove_row(data) {
    if(data.sukses == '1') {
        $('td.hps_ajax a#hps_ajax'+data.id).closest('tr').fadeOut('slow',function() {
            $(this).remove();
        });
    } else {
        alert('Gagal menghapus File.');
    }
}

getJSON 链接是一个 CodeIgniter 应用链接。有人知道为什么这不再起作用了吗?

【问题讨论】:

  • 您能否附加一个示例 json 响应您的 url 在调用时生成?最可能的是它只是无效的 json
  • “不起作用”三次?认真的吗?

标签: jquery getjson


【解决方案1】:

如果您的 JSON 不完全有效,最可能的原因是现在在 jQuery 1.4+ 中进行了检查

From the docs:

jQuery 1.3 和更早的版本使用 JavaScript 的 eval 来评估传入的 JSON。 jQuery 1.4 使用本机 JSON 解析器(如果可用)。它还验证传入 JSON 的有效性,因此在 jQuery.getJSON 中以及将“json”指定为 Ajax 请求的数据类型时,jQuery 会拒绝格式错误的 JSON(例如 {foo: "bar"})。

使用 JSONLint 之类的东西来验证/修复您的 JSON,它应该在有效后开始工作。获取'../admin/media_admin/ajaxHapus/'+id的回复并在JSONLint上查看,也可以使用FireBug查看,很方便。

【讨论】:

  • 感谢尼克的回复。我已经尝试将我的代码粘贴到 jsonlint.com 以进行验证。但它一直告诉我解析器失败了。
  • @Nikolius - 你能发布 JSON 吗?
  • 这是我返回的 json {'sukses':'1','id':56}
  • @Nikolius - 你的 JSON 应该是双引号才有效,像这样:{"sukses":"1","id":56}
  • @Nick - 谢谢 nick,终于可以使用 jquery 1.4.2 了。 :D
【解决方案2】:

jquery 1.4 中的getJson 不会触发。 下面是一个解决这个问题的例子:

//begin ( in jquery 1.3.2)
$.getJSON("/url",{id: 'xyz'}, function(json){
     //alert('');
}




// change to ( in jquery 1.4.1)

$.ajax({url: "/url",
  dataType: "text",    // notice: not type : JSON
  success: function(text) {
    json = eval("(" + text + ")"); 

    // do something with JSON
  }
});

【讨论】:

  • 这是个糟糕的主意。你为什么要这样做?为什么不用jQuery自带的解析,很好用呢?
猜你喜欢
  • 1970-01-01
  • 2013-05-17
  • 2017-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多