2012-10-11 58 views
1

我一直在編寫一個應用程序,該應用程序使用回顧工具來獲取某個項目在特定日期內具有的總點數。拉此信息的請求如下所示:Rally Analytics 2.0 - 錯誤413:請求實體太大

getPointsOn: function(date, iOIDs, callback) { 
    var params = {}; 
    params.find = '{ Iteration: {$in: [' + iOIDs + ']}, PlanEstimate: { $gt: 0 }, __At: "' + date.toISOString() + '" }'; 
    params.fields = '[ "PlanEstimate", "Project" ]'; 

    Ext.Ajax.cors = true; 
    Ext.Ajax.request({ 
     url: App.qURL, 
     method: 'GET', 
     params: params, 
     withCredentials: true, 
     success: function(response) { 
      var points = {}; 
      Ext.Array.each(Ext.JSON.decode(response.responseText).Results, function(US) { 
       if (points[US.Project] == undefined) points[US.Project] = 0; 
       points[US.Project] += US.PlanEstimate; 
      }); 
      callback(points); 
     }, 
     failure: function() { 
      console.log('Ajax Failed'); 
      callback({}); 
     } 
    }); 
} 

它返回一個對象與項目/點對,並在1-2迭代的ObjectID傳遞給它完美的作品。問題是當我開始請求更大的數據集時。我一直在收到「Request Entity Too Large」錯誤。我認爲這是請求本身的一個問題,儘管我不確定它是如何「太大」的。這個錯誤的可能原因是什麼?

謝謝!

+0

我有針對性的問題:當發出Ajax請求時,它試圖附加一個我保存的cookie,它實際上並不需要。有沒有一種方法可以禁用此功能? –

回答

1

大狀態的元件,例如從選擇器選擇的值,應存儲與Ext.state.LocalStorageProvider實例,而不是一個Ext.state.CookieProvider。假設不需要發送cookie來完成查詢請求。

1

您可以執行Ext.util.Cookies.clear(cookieName)來刪除cookie。通常,ALM的最大請求大小爲8k,因此大型的pref cookie與大量的迭代oid可能達到此限制。

此外,還有一種更完全支持的方式來訪問SDK 2.0p4中的Lookback API。 http://developer.rallydev.com/apps/2.0p4/doc/#!/api/Rally.data.lookback.SnapshotStore

Ext.create('Rally.data.lookback.SnapshotStore', { 
    listeners: { 
     load: function(store, data, success) { 
      //process data 
     } 
    }, 
    fetch: ['PlanEstimate', 'Project'], 
    filters: [ 
     { 
      property: 'Iteration', 
      operator: 'in', 
      value: iOIDS //an array 
     }, 
     { 
      property: 'PlanEstimate', 
      operator: '>', 
      value: 0 
     }, 
     { 
      property: '__At', 
      value: date.toISOString() 
     }, 
    ], 
    autoLoad: true 
}); 
+0

凱爾,這看起來不錯,但我試圖拉數據時出現錯誤:「Ext.Error:您試圖解碼無效的JSON字符串」。任何想法是什麼造成這個? –

+0

另外,有沒有辦法只發送cookie的請求?我想保留它以備後用,但查詢本身並不需要它。 –