这是我关于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 App Link。任何人都知道为什么这不再起作用了?
答案 0 :(得分:8)
最可能的原因是,如果您的JSON不完全有效,现在在jQuery 1.4 +
中检查jQuery 1.3及更早版本使用JavaScript的eval来评估传入的JSON。 jQuery 1.4使用本机JSON解析器(如果可用)。它还验证传入的JSON的有效性,因此jQuery在jQuery.getJSON中以及将“json”指定为Ajax请求的dataType时,将拒绝格式错误的JSON(例如{foo:“bar”})。
使用类似JSONLint的内容来验证/修复您的JSON,它应该在有效时开始工作。从'../admin/media_admin/ajaxHapus/'+id
获取响应并在JSONLint上进行检查,您也可以使用FireBug查看它,这很方便。
答案 1 :(得分:-1)
//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
}
});