2012-10-28 13 views
7

Viene visualizzato un errore "POST 400 per richiesta non valida" quando si tenta di aggiornare una tabella su parse.com utilizzando JS SDK.Errore 'POST 400 cattiva richiesta' durante l'aggiornamento della tabella 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(); 
    } 
}); 

Si prega di aiuto!

non riesco a vedere come questo è diverso per il codice di esempio fornito da parse here

+0

Puoi guardare nel chrome debugger alla richiesta http effettiva che restituisce 400 e includerla nella tua domanda? – bklimt

+0

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

Ignorare il fatto che "/ galleries /" nella richiesta API e il nome della galleria nel mio codice non corrispondono Qui. Ho risolto che un po 'di tempo fa - questo non è il problema qui – vedran

risposta

4

Il codice di esempio si fa riferimento crea tutti i suoi parametri prima di impostare il metodo save(). Questo è il passo che ti manca; è necessario creare il parametro activeArtworks nell'istanza della galleria. L'aggiornamento non funziona perché stai tentando di aggiornare una proprietà che non è mai stata creata.

Mi aspetto che questo codice funzioni, anche se non l'ho testato perché parse.com richiede di creare un account per eseguire qualsiasi codice, il che è sciocco, e non me la sentivo di crearne uno:

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

Potrebbe anche valere la pena controllare se ci sono informazioni nelle intestazioni dell'errore 400 (la console di debug nel browser mostrerà queste nella sua scheda Rete). Mi aspetterei che Parse ti fornisca una sorta di informazione per aiutarti a risolvere i problemi, e questo è l'unico posto in cui si adatta ad un errore HTTP.

0

Se si è utilizzata la funzione user.logIn (callback) con Parse JS, è possibile che la sessione non sia valida. Controllare il codice di errore della funzione di richiamata, se error.code==209 (token di sessione non valido), utilizzare Parse.User.logOut() e riconnettersi di nuovo.

Ti piace questa:

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

Ho avuto questo stesso problema ed è stato risolto dopo aver capito che il tipo di dati che stavo distacco era diverso da quello indicato nelle colonne che avevo creato. Nel mio caso, stavo cercando di salvare un oggetto quando avevo specificato un array durante la creazione della colonna nella classe.

Problemi correlati