2012-10-28 109 views
7

嘗試使用JS SDK更新parse.com上的表時出現'POST 400錯誤請求'錯誤。更新parse.com表時出現'POST 400錯誤請求'錯誤

var Gallery = Parse.Object.extend("Gallery"); 
var gallery = new Gallery(); 
var activeArtworks = 0; 
gallery.save(null, { 
    success: function(gallery) { 
      gallery.set("activeArtworks", activeArtworks); 
      gallery.save(); 
    } 
}); 

請幫忙!

我看不出這有什麼不同通過解析here

+0

你可以看看chrome調試器在返回400的實際http請求並將其包含在你的問題中嗎? – bklimt

+0

當然可以@bklimt。這裏是:POST https://api.parse.com/1/classes/galleries/cn5t2w81qN 400(Bad Request)parse-1.0.0.min.js:1 b._ajax parse-1.0.0.min。 js:1 b._request parse-1.0.0.min.js:1 c.extend.save parse-1.0.0.min.js:1 gallery.save.success fgcViewartwork.js:211 c.extend .save.p.success parse-1.0.0.min.js:1 b._ajax.g.onreadystatechange – vedran

+0

忽略API請求中的「/ galleries /」和我的代碼中的圖庫名稱不匹配這裏。我已經修復了一段時間 - 這不是問題 – vedran

回答

4

您參考示例代碼創建其所有參數設置保存()方法之前提供的示例代碼。這是你錯過的一步;您需要在您的畫廊實例上創建activeArtworks參數。您的更新失敗,因爲您正嘗試更新從未創建的屬性。

我希望這段代碼能夠工作,但我沒有測試它,因爲parse.com要求您設置一個帳戶來運行任何代碼,這很愚蠢,我不想創建一個:

var Gallery = Parse.Object.extend("Gallery"); 
var gallery = new Gallery(); 
var activeArtworks = 0; 
gallery.activeArtworks = []; // or some more appropriate default if you have one. 
gallery.save(null, { 
    success: function(gallery) { 
     gallery.set("activeArtworks", activeArtworks); 
     gallery.save(); 
    } 
}); 

也許值得檢查400錯誤頭文件中是否有任何信息(瀏覽器中的調試控制檯會在它的Network選項卡中顯示這些信息)。我希望Parse給你提供一些信息來幫助你調試問題,這是唯一適合HTTP錯誤的地方。

0

如果您使用parse JS的user.logIn(回調)函數,那麼您的會話可能無效。請檢查您的回撥函數錯誤代碼,如果error.code==209(無效的會話令牌),請使用Parse.User.logOut()並重新再次登錄。

像這樣:

if (error.code == 209) {  
    Parse.User.logOut(); 
    user.logIn(loginCallback); 
    return; 
} 
0

我有同樣的問題,而且還意識到,我是發佈的數據類型是在說我創造了列指定不同的後解決。 在我的情況下,當我在類中創建列時指定數組時,我試圖保存一個對象。