2010-10-13 55 views
0

我正在使用mx.rpc.http.HTTPService從Web服務檢索數據。在初始調用「loadWsData」時,HTTPservice準確地檢索所有數據。HTTPService不檢索當前數據

但是,在任何和所有後續調用HTTPService不會準確檢索數據;而是總是檢索第一個數據集。我已經確認,Web服務正在提供準確的數據,無論是來自Web瀏覽器還是ruby ws客戶端腳本。

我的代碼如下;關於什麼可能是問題的任何想法?

private function loadWsData(id:int):void 
{ 
    var webService:HTTPService = new HTTPService(); 
    webService.url = "http://xxx.xxx.xxx.xxx:8080/profile/ + id; 
    webService.method = "GET";  
    webService.addEventListener(ResultEvent.RESULT, function(event:ResultEvent):void 
    { 
     var rawData:String = String(event.result); 
     var user:Object = JSON.decode(rawData).user; // User object always reflects the first data set retrieved. 
     .... 
     .... 
    }); 
    webService.send(); 
} 
+0

將數據源重新綁定到任何綁定的顯示對象。 – 2010-10-13 16:58:38

+0

服務器緩存是什麼東西?您可以嘗試向URL添加一個隨機URL變量,以強制服務器不緩存URL。這是我最好的猜測。 – JeffryHouser 2010-10-13 17:00:46

+0

沒有該服務沒有緩存。我嘗試添加隨機url變量,但它不起作用。還有其他建議嗎? – dank106 2010-10-19 17:17:17

回答

0

不知道這個問題可能是什麼,但我有幾點建議在哪裏看。

首先,您的代碼中似乎存在一個錯誤; webService.url行缺少一個引號。這可能會搞砸你發送的認爲的URL。奇怪的,但是,因爲我不認爲你所顯示的東西會編譯,所以我懷疑這只是一個剪切和粘貼錯誤,當你把它發佈到StackOverflow,但我會追查出該URL只是爲了確保。

此外,我沒有看到代碼來刪除事件監聽器(儘管它可能在你用省略號縮寫的代碼中)。除了你期望的事件之外,是否有可能還有徘徊的事件監聽器?如果原始事件偵聽器觸發,它將使用原始數據觸發。

另一個建議:不要使用閉包,嘗試將其拉出到單獨的函數。這不應該是問題,但也許範圍在這裏扮演一個角色。

您可以嘗試發佈您的結果。

您可能還會爲FAULT添加事件偵聽器,並查看是否有任何錯誤被您的服務請求拋出。