2013-03-14 14 views
0

這些調用它是2個選項,這兩個工作原理相同:更棒的是 - 直接使用Ajax調用或者把它在一個函數,並從多個地方

 var promise=doAjax(dataStr,'shop'); 
     promise.success(function(data){ 
      json=eval('('+data+')'); 
      console.log(json['Data']); 
     }); 
     promise.error(function(data){ 
      alert('There was an error'); 
     }); 

隨着功能:

function doAjax(dataStr,process){ 
    return $.ajax({ 
     data: dataStr, 
     url: '/process/'+process+'/' 
    }); 
} 

或者它否則看起來像這樣:

 $.ajax({ 
      data: dataStr, 
      url: '/process/shop/', 
      success: function(data){ 
       json=eval('('+data+')'); 
       console.log(json['Data']); 
      }, 
      error: function(data) { 
       alert('There was an error'); 
      } 
     }); 

那麼,什麼是做的最有效的方式,與第一種方法是SL更輕的代碼?

+0

有沒有更好的方式來獲得從一個JavaScript數組json返回數據比這個:成功:函數(數據){json = eval('('+ data +')');} – DrK 2013-03-14 16:54:09

+0

在我發佈的錯誤 – DrK 2013-03-14 16:54:26

回答

0

如果你要經常使用你的包裝,你可以實現它一定要保持你的代碼乾淨,有時我用以下包裝:

//initPostData() returns ready-to-post js object 
ajaxWrapper(initPostData(), "url", function (response) { 
    //some logic here    
}); 

function ajaxWrapper(postData, url, callback) { 
    $.ajax({ 
     type: 'POST', 
     contentType: "application/json; charset=UTF-8", 
     dataType: 'json', 
     data: JSON.stringify(postData), 
     url: url, 
     success: function (response) { 
      callback(response); 
     }, 
     error: function() { 
      //error logic 
     } 
    }); 
} 
+0

因此在你的例子中,你說postData是一個數組,你變成JSON並通過POST發送? – DrK 2013-03-14 16:53:17

+0

它不是一個數組,在我的情況下它是一個對象,但絕對可以是任何東西 – Sergio 2013-03-14 20:01:58

相關問題