2011-07-23 37 views
0

,這裏是我的jQuery什麼錯這個調用的getJSON

$.getJSON('/users/delete_preapproval', { 
    preapproval: $(this).attr('id'), id: $(this).attr('id') }, 
function(data) { 
complete: function(){ 
    console.log('ssss'); 
    } 
}); 

一切運作良好和服務器處理請求,但完全是不工作...我沒有得到我的console.log顯示。基本上,我需要一個完整的上或成功的火成功的Ajax調用

編輯後:這裏是我的整個Click事件:

$('.delete_preapproval').click(function(e){ 
    var count = $(this).closest('.request_count').attr('data'); 
    if(count > 0){ 
     if(count == 1){ 
      var plural = 'request'; 
     }else{ 
      var plural = 'requests'; 
     }   
     if (confirm('Are you sure you want to delete this preapproval you have ' + count + ' active ' + plural)){ 
       $.getJSON('/users/delete_preapproval', { 
        preapproval: $(this).attr('id'), 
        id: $(this).attr('id') 
       }, 
       function(data) { 
        console.log('ssss'); 
       }); 

    }else{ 
      return false; 
     } 
    }else{ 
     $.getJSON('/users/delete_preapproval', { preapproval: $(this).attr('id'), id: $(this).attr('id') }, function(data) { 
     window.location.reload(); 
     }); 
    } 
    e.preventDefault(); 
}); 

回答

2

你實際上應該得到一個語法錯誤。刪除complete:

$.getJSON('/users/delete_preapproval', { 
    preapproval: $(this).attr('id'), 
    id: $(this).attr('id') 
}, 
function(data) { 
    console.log('ssss'); 
}); 

complete:正在創造一個label [docs]在這條線。卸下標籤是:

function(data) { 
    function(){ 
     console.log('ssss'); 
    } 
} 

你看,當外部函數被調用(除了語法錯誤)永遠不會執行該內部函數。

更新:還要確保您返回的數據是正確的JSON。否則,jQuery無法解析它,並且不會調用回調。

+0

仍然沒有SSSS ...我更新了我的問題與整個jQuery的通話 – Trace

+0

以防萬一你想知道它是在def if(count> 0){ 條件 – Trace

+1

@Tamer:什麼是服務器的響應?這是適當的JSON?也許jQuery無法解析它。 –

1

您需要刪除完整的:以及之後的函數調用。所以更多的東西一樣:

$.getJSON('/users/delete_preapproval', { 
    preapproval: $(this).attr('id'), id: $(this).attr('id') }, 
function(data) { 
    console.log(data); 
}); 
1

你爲什麼不嘗試

$.ajax({ 
    type: 'post', 
    url: "https://stackoverflow.com/users/delete_preapproval",   
    dataType: 'json', 
    data: {preapproval : $(this).attr('id'), id : $(this).attr('title')}, 
    complete: function() { 
     console.log('ssss'); 
    }   
}); 

這應該工作...