2

这是我关于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 应用程序链接。有人知道为什么这不再起作用了吗?

4

2 回答 2

8

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

从文档

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

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

于 2010-03-23T17:06:25.737 回答
-1

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
  }
});
于 2011-11-07T07:43:31.110 回答