2012-11-08 34 views
2

所以我使用backbone.js,我試圖保存模型。在服務器端,我爲獲得的模型生成一個GUID,並且我返回了GUID,這樣Model就在客戶端擁有它。在保存時將值返回給BackBone.js

我的功能就是這樣

this.save({}, 
     { 
      success: function (model, response) { 
       alert(response); 
      }, 
      error: function (model, response) { 
       alert(response) 
      } 
     }); 

它發送對象到服務器,它返回我從崗位所需的值。它返回一個(HTTP/1.1 200 OK),但它調用錯誤函數(它有我的正確的返回值) 任何想法爲什麼?

我的確在控制檯

JSON.stringify(response) 
"{"readyState":4,"responseText":"5dad212e-73bf-4e01-911a-397b81f77022","status":200,"statusText":"OK"}" 

所以正在恢復的200和GUID,但沒有發射成功,下面....我真的不希望只使用誤差函數因爲這是不應該發射什麼:p

在此先感謝!

+0

嘗試明確地將一個模型值放入保存調用的第一個參數中。文檔中提到只保存該散列的指定屬性。另外,錯誤函數中模型參數的內容是什麼? –

+0

添加參數並沒有幫助。然而,你對模型中的內容的疑問很有趣。 該模型乍看之下顯得很好。然而,當我嘗試'JSON.stringfy(模型)'我得到'TypeError:將循環結構轉換爲JSON' 我注意到有一個屬性有一個循環引用,並將其設置爲空,我可以將其字符串化。 事情是我可以stringify模型之前它被保存,但不是在回調中的模型.... – Jordan

+0

我修正了循環引用。在回調完成之前,另一個回調正在發射。我將調用其他調用的函數移回到我們正在查看的回調中(是的,令人困惑...有很多事情發生) 我現在可以JSON.stringify返回錯誤的模型,但它仍然沒有'所以我不認爲這是問題所在(但以後會是另一個,謝謝!) – Jordan

回答

3

看着你的resposneText,它似乎服務器沒有返回可接受的響應 - 不是一個適當的json對象。使服務器返回的響應類似,

{ 
    "guid" : "id_to_be_returned" //, 
    // and other attributes to be added in the model 
} 

並做出響應類型爲json。它應該工作。