7

尝试使用 JS SDK 更新 parse.com 上的表时,我收到“POST 400 bad request”错误。

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();
    }
});

请帮忙!

我看不出这与 parse here提供的示例代码有何不同

4

3 回答 3

4

您引用的示例代码在设置 save() 方法之前创建其所有参数。这是您缺少的步骤;您需要在您的画廊实例上创建 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 错误的标题中是否有任何信息可能也值得检查(浏览器中的调试控制台将在其网络选项卡中显示这些信息)。我希望 Parse 能给你一些信息来帮助你调试问题,这是它唯一适合 HTTP 错误的地方。

于 2013-06-14T06:34:54.713 回答
0

如果您在 Parse JS 中使用了 user.logIn(callback) 函数,则您的会话可能无效。请检查您的回调函数错误代码,如果error.code==209(无效的会话令牌),请重新使用Parse.User.logOut()并重新登录。

像这样:

if (error.code == 209) {    
    Parse.User.logOut();
    user.logIn(loginCallback);
    return;
}
于 2015-07-26T22:17:21.063 回答
0

我遇到了同样的问题,并且在意识到我发布的数据类型与我创建的列中指定的数据类型不同后解决了。在我的例子中,当我在类中创建列时指定了一个数组时,我试图保存一个对象。

于 2015-08-24T16:35:25.260 回答