我的函数内部有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' .. 任何的想法?
答案 0 :(得分:0)
proccess.php
ajaxpost没有正确返回json对象,同时我把dataType: 'json'
放在我的ajaxpost中,这就是为什么我的ajaxpost是没有成功回调
但是我仍然想知道我的ajaxget仍然会成功回调即使我的/proccessGet.php?id=12
没有返回json对象,ajax是否GET
方法忽略datatype:json
?