使用ajax帖子

时间:2017-05-24 07:20:50

标签: javascript jquery ajax callback

我的函数内部有ajax调用使其可重用,当我的ajax成功时我想回调一个函数,

var ajaxPostCall = function(data , url ,callback){
  // Return the $.ajax promise
$.ajax({
    data: data,
    dataType: 'json',
    url: url,
    method: 'POST',
    beforeSend: function() {
        onStartAjaxRequest();
    },
    success:function(data){
        if(typeof callback == "function"){
            callback();  
        }else{
            console.log('not callback');
        }               
    },
    complete: function (XMLHttpRequest, textStatus) {
        onEndAjaxRequest();
    }
});
}

var ajaxGetCall = function(data , url ,callback){
  // Return the $.ajax promise
$.ajax({
    url: url,
    dataType: 'json',
    method: 'GET',
    beforeSend: function() {
        onStartAjaxRequest();
    },
    success:function(data){
        //console.log('test');
        if(typeof callback == "function"){
            callback();  
        }else{
            console.log('not callback');
        }          
    },
    complete: function (XMLHttpRequest, textStatus) {
        onEndAjaxRequest();
    }
   });
 }


function onStartAjaxRequest(){
    $('#spinner').hide();
}


function onEndAjaxRequest(){
        $('#spinner').show();
}

$(document).ready(function(){
data = {'name' : 'john'};

function callbackSuccess(){
    console.log('success');
}

ajaxPostCall(data , '/proccess.php' , function(){
    console.log('success 1');
});

ajaxGetCall(data , '/proccessGet.php?id=12' , function(){
    console.log('success 2');
}); 

})

当我运行此代码时,ajax post和get都可以工作。但为什么只有我的ajaxget可以调用回调' success2' ,ajaxpost并没有显示成功1' .. 任何的想法?

image

1 个答案:

答案 0 :(得分:0)

好吧,我只是发现自己,我知道问题...我的proccess.php ajaxpost没有正确返回json对象,同时我把dataType: 'json'放在我的ajaxpost中,这就是为什么我的ajaxpost是没有成功回调

但是我仍然想知道我的ajaxget仍然会成功回调即使我的/proccessGet.php?id=12没有返回json对象,ajax是否GET方法忽略datatype:json