2013-02-28 6 views
1

Я пытаюсь вернуть объект json из функции и использовать его в качестве кода ниже, но он не работает. что с ним не так?return json object fron function

var x = [ "EditFileName" , "dosometing" ]; 
c_loadAjax.apply(this,x).done(function(json){ 
    alert(json.error); 
}); 
function c_loadAjax(post , option){ 
    $.ajax({ 
     type:"POST", 
     url:"/includes/Ajax.php", 
     data:{post:post,option:option}, 
     error:function(result){ 
      return '{"error":"Error"}'; 
     }, 
     success:function(result){ 
      return jQuery.parseJSON(result); 
     } 
    }); 
} 
+1

Я думаю, что вы должны вернуть отложенный объект сам по себе, чтобы использовать его с '.done' – sofl

ответ

1

Попробуйте с обратного ключевым словом

var x = [ "EditFileName" , "dosometing" ]; 
c_loadAjax.apply(this,x).done(function(json){ 
    alert(json.error); 
}); 
function c_loadAjax(post , option){ 
    return $.ajax({ 
     type:"POST", 
     url:"/includes/Ajax.php", 
     data:{post:post,option:option}, 
     error:function(result){ 
      return '{"error":"Error"}'; 
     }, 
     success:function(result){ 
      return jQuery.parseJSON(result); 
     } 
    }); 
} 
+0

это фактически возвращает данные как JSON и работает отлично. но действительно ли это так, чтобы использовать его? – kamal

+0

нет, предпочитают запрашивать тип данных: «json» в вашем запросе и давать обратные вызовы (функции успеха и сбоя) для вашего c_loadAjax в качестве параметров – MathKimRobin