2

これはstackoverflowに関する私の最初の質問です。getJSONコードがjQuery1.4.2で機能しないのはなぜかと思いますが、jQuery1.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が完全に有効でない場合に最も可能性の高い原因は、jQuery1.4以降でチェックされるようになりました

ドキュメントから

jQuery 1.3以前では、JavaScriptの評価を使用して着信JSONを評価していました。jQuery 1.4は、可能な場合はネイティブJSONパーサーを使用します。また、着信JSONの有効性を検証するため、不正な形式のJSON(たとえば、{foo: "bar"})は、jQuery.getJSONのjQueryによって拒否され、AjaxリクエストのdataTypeとして「json」を指定します。

JSONLintのようなものを使用してJSONを検証/修正します。有効になると、動作を開始するはずです。からの応答を受け取り、JSONLintで確認してください。また、便利なFireBug'../admin/media_admin/ajaxHapus/'+idで表示することもできます。

于 2010-03-23T17:06:25.737 に答える
-1

jquery1.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 に答える