2012-10-28 110 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

我有同样的问题,而且还意识到,我是发布的数据类型是在说我创造了列指定不同的后解决。 在我的情况下,当我在类中创建列时指定数组时,我试图保存一个对象。