2016-04-14 2 views
6

ファイルを取得してHTMLを返そうとしています。しかし、それは私が想像していたほど単純ではありません。fetch()でHTMLを返す

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

これは、ReadableByteStreamというオブジェクトを返します。これを使ってHTMLファイルのコンテンツを取得するにはどうすればよいですか?

私はJSON文字列であることを/path/to/fileの内容を変更、およびに上記を変更した場合:

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

...それが正しくJSONを返します。 HTMLをフェッチするにはどうしたらいいですか?

+2

これは懸念を引き起こします。そのHTMLで何をするつもりですか?なぜなら、「それを私のアクティブな文書に挿入する」ことではないからです。代わりに、JSON形式でデータを要求してから、クライアント側のDOMを構築して、ユーザーが潜在的にハッキングされた危険なHTMLを読み込んでいないことを知ってください。 –

答えて

8

.json()の代わりに.text()メソッドを使用する必要があります。これにより、バイトストリームがプレーンテキストに変換されます。プレーンテキストはHTMLとしてブラウザで解析できます。

関連する問題