Ho il follow codice Backbone.jsImpossibile recuperare JSON In collezione Backbone
var List = Backbone.Collection.extend({
model: Item,
url: '/api/items',
});
e poi a mio avviso che sto cercando di fare quanto segue per andare a prendere il JSON dalle API e popolare i modelli
this.collection = new List();
var that = this;
this.collection.fetch({
success: function() {
that.render();
console.log('Fetch successful!');
},
error: function() {
console.log('Failed to fetch!');
}
});
Tuttavia il recupero non funziona e il suo triggering "Impossibile recuperare!" Messaggio. Qualcuno può vedere qualcosa che sto sbagliando? Se vado allo api/items
nel mio browser, mi viene richiesto di scaricare il file JSON, quindi è definitivamente lì e quando apro la sua nuova riga delimitata. Di seguito è riportato un frammento di codice api che rimanda il JSON
res.writeHead(200, {
'Content-Type': 'application/x-json-stream'
});
setTimeout(function() {
var i;
for (i=0; i<limit; i+=1) {
res.write(JSON.stringify(createRandomItem(i+skip, sort)) + '\n');
}
res.end();
}, 100 + Math.floor(Math.random() * 3000));
Anche quando uso strumenti di sviluppo per verificare la richiesta che è stata inviata all'API la risposta al mio ritorno sembra solo essere caratteri casuali e ottengo l'errore "SyntaxError: JSON.parse: carattere imprevisto"
eyJpZCI6IjAtd202MzNjYTF0Y3ZqOWs5Iiwic2l6ZSI6MTYsInByaWNlIjo5MzgsImZhY2
Prova solo 'res.send (200, {il tuo array/oggetti/etc})' – benhowdle89
Non sono sicuro, ma può essere tale che il tipo di contenuto JSON in streaming non sia supportato dall'implementazione JS del tuo browser? AFAIK, Backbone utilizza un semplice oggetto 'XMLHttpRequest' per gestire le richieste di raccolta. Cosa succede se usi un semplice 'application/json'? – VisioN
Ho provato a cambiare il tipo di contenuto in 'application/json', ma ho ottenuto lo stesso risultato.Inoltre, vorrei sottolineare che, se possibile, non voglio modificare il codice lato server. – Bender