我正在使用BreezeJS和Angular從SAP Netweaver Gateway系統提供的Restful OData服務中使用數據。應用程序正在正確地從服務中讀取數據,包括元數據,並且如預期的那樣將這些全部保存在EntityManager中。BreezeJs,saveChanges() - 未捕獲TypeError:無法讀取未定義的屬性'statusText'
但是,當我更改其中一個實體的狀態並執行saveChanges()時,不會調用成功或失敗回調,而是會顯示控制檯錯誤。
Uncaught TypeError: Cannot read property 'statusText' of undefined
調用保存代碼如下
$scope.doSave = function(){
$scope.purchases[0].Requester = "Dave" ;
$scope.items[0].Description = "New Description";
if (!$scope._isSaving)
{
console.log("Saving!");
$scope._isSaving = true;
manager.saveChanges().then(function(data){
console.log("Saved");
console.log(data);
$scope._isSaving = false;
}, function(error){
console.log(error);
$scope._isSaving = false;});
}
}
凡經理是一個標準的微風的EntityManager。
代碼在服務器上被縮小,所以很難通過調試,但是這是在一個核心微風庫內引發的。
客戶端被執行$一批POST請求到服務器,服務器用202接受響應,如下
--0DD0586DB234C0A3D0D530A25CD1C8400
Content-Type: multipart/mixed; boundary=0DD0586DB234C0A3D0D530A25CD1C8401
Content-Length: 519
--0DD0586DB234C0A3D0D530A25CD1C8401
Content-Type: application/http
Content-Length: 111
content-transfer-encoding: binary
HTTP/1.1 204 No Content
Content-Type: text/html
Content-Length: 0
dataserviceversion: 2.0
content-id: 1
--0DD0586DB234C0A3D0D530A25CD1C8401
Content-Type: application/http
Content-Length: 111
content-transfer-encoding: binary
HTTP/1.1 204 No Content
Content-Type: text/html
Content-Length: 0
dataserviceversion: 2.0
content-id: 2
--0DD0586DB234C0A3D0D530A25CD1C8401--
--0DD0586DB234C0A3D0D530A25CD1C8400--
我希望這是一件somehere這裏之前已經見過!
你在代碼中檢查statusText的值嗎? –
你應該展示微風經理如何獲得實體,你如何改變他們 –
嗨,感謝您的意見。由於我發佈了這個,我設法通過它調試我的方式,看起來問題是返回的數據與204無內容頭一起有「Content-Type:text/html」。 DataJS將其解釋爲具有數據,因爲它具有Content-Type,因此它會嘗試讀取數據並因此失敗,因爲它沒有text/html類型的處理程序,這會傳播回Breeze,而不是響應對象它期待它insead收到一個字符串「沒有處理這個數據」,它試圖檢查這個狀態文本並失敗。 – user3581810