2016-04-14 20 views
6

Bir dosya alıp HTML'ye döndürmeye çalışıyorum. Ancak hayal ettiğim kadar basit değil.HTML Döndürme getirme()

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

Bu, ReadableByteStream adlı bir nesneyi döndürür. HTML dosya içeriğini kapmak için bunu nasıl kullanırım?

Ben /path/to/file içeriğini değiştirirseniz

bir JSON dize olmalı ve yukarıdaki değiştirmek için:

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

... o JSON doğru döner. HTML'yi nasıl alırım?

+2

bu endişeleri gündeme getirir: Bu HTML ile ne yapmayı düşünüyorsunuz? çünkü umarım "aktif dokümanıma enjekte etmez". Bunun yerine, JSON formunda veri isteyin ve bunun etrafında DOM oluşturun. Böylece, * bildiğiniz gibi * kullanıcı potansiyel olarak saldırıya uğramış ve süper güvenli olmayan HTML'yi yüklemiyor. –

cevap

8

.json() yerine .text() yöntemini kullanmanız gerekir. Bu, bayt akışını tarayıcı tarafından HTML olarak ayrılabilecek düz metne dönüştürür.