что не так с этим вызовом getJson - PullRequest
0 голосов
/ 23 июля 2011

вот мой jQuery

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

Все работает хорошо, и сервер обрабатывает запрос, но полный не работает ... Я не получаю отображение console.log. Мне в основном нужно завершить или успешно завершить стрельбу после успешного вызова ajax

РЕДАКТИРОВАТЬ: вот все мое событие клика:

$('.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();
});

Ответы [ 3 ]

2 голосов
/ 23 июля 2011

Вы должны получить синтаксическую ошибку. Удалить complete::

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

complete: создает метку [документы] в этой строке. Удаление метки будет:

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

Вы видите, что эта внутренняя функция никогда не выполняется при вызове внешней функции (кроме синтаксической ошибки).

Обновление: Также убедитесь, что возвращаемые данные соответствуют JSON. В противном случае jQuery не сможет его проанализировать и не будет вызывать обратный вызов.

1 голос
/ 23 июля 2011

Почему бы вам не попробовать

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

Это должно сработать ...

1 голос
/ 23 июля 2011

Вам необходимо удалить полный: и вызов функции после него.Так что-то вроде:

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