2016-04-14 17 views
6

Sto cercando di recuperare un file e restituirlo è HTML. Tuttavia non è così semplice come avrei immaginato.Restituzione di HTML con fetch()

fetch('/path/to/file') 
    .then(function (response) { 
     return response.body; 
    }) 
    .then(function (body) { 
     console.log(body); 
    }); 

Restituisce un oggetto denominato ReadableByteStream. Come posso usarlo per afferrare il contenuto del file HTML?

Se cambio il contenuto di /path/to/file essere una stringa JSON, e cambiare il sopra per:

fetch('/path/to/file') 
    .then(function (response) { 
     return response.json(); 
    }) 
    .then(function (json) { 
     console.log(json); 
    }); 

... restituisce il JSON correttamente. Come posso recuperare HTML?

+2

questo solleva dubbi: cosa intendi fare con quell'HTML? perché spero che non sia "iniettarlo nel mio documento attivo". Chiedete invece i dati, in formato JSON, e quindi compilate DOM in giro, lato client, in modo che * sappiate * che l'utente non sta caricando HTML cieco potenzialmente compromesso e super pericoloso. –

risposta

8

È necessario utilizzare il metodo .text(), anziché .json(). Converte il flusso di byte in testo normale, che può essere analizzato dal browser come HTML.