2012-10-28 21 views
7

Otrzymuję błąd "POST 400 nieprawidłowych żądań" podczas próby zaktualizowania tabeli w witrynie parse.com przy użyciu zestawu SDK JS.Błąd "POST 400 nieprawidłowych żądań" podczas aktualizowania tabeli parse.com

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

Proszę o pomoc!

nie mogę zobaczyć, jak to jest inaczej do przykładowego kodu dostarczonego przez parse here

+0

Czy możesz sprawdzić w chromowanym debugerze rzeczywiste żądanie http, które zwraca 400 i uwzględnia je w pytaniu? – bklimt

+0

Sure can @bklimt. Oto ona: 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

Zignoruj ​​fakt, że "/ galleries /" w żądaniu API i nazwa galerii w moim kodzie nie pasują tutaj. Naprawiłem to jakiś czas temu - to nie problem tutaj – vedran

Odpowiedz

4

Przykładowy kod odwołać tworzy wszystkie jego parametry przed powołaniem metodę save(). To jest krok, którego ci brakuje; musisz utworzyć parametr activeArtworks w instancji galerii. Aktualizacja nie działa, ponieważ próbujesz zaktualizować usługę, która nigdy nie została utworzona.

Spodziewam się, że ten kod zadziała, chociaż nie przetestowałem go, ponieważ parse.com wymaga skonfigurowania konta do uruchomienia dowolnego kodu, co jest głupie, a nie chciałem go utworzyć:

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

Warto również sprawdzić, czy w nagłówkach komunikatu o błędzie 400 nie ma żadnych informacji (konsola debugowania w przeglądarce wyświetli je na karcie Sieć). Spodziewałbym się, że Parse dostarczy ci jakichś informacji, które pomogą ci w debugowaniu problemów, i to jedyne miejsce, w którym pasowałoby do błędu HTTP.

0

Jeśli używasz funkcji user.logIn (wywołania zwrotnego) w analizie składniowej JS, być może sesja jest nieważna. Sprawdź kod błędu funkcji zwrotnej, jeśli error.code==209 (nieprawidłowy token sesji), użyj numeru Parse.User.logOut() i ponownie zaloguj się ponownie.

Jak to:

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

miałem ten sam problem i został rozwiązany po zdając sobie sprawę, że rodzaj danych, które ja delegowania był inny niż określony w kolumnach że stworzył. W moim przypadku próbowałem zapisać obiekt, gdy podałem kolumnę podczas tworzenia kolumny w klasie.

Powiązane problemy