2017-02-23 13 views
0

私は、バックエンドでExcelファイルを生成するために、Laravel 5.1 REST APIとmaatwebsiteソリューションを使用しています。私が欲しいのは、ボタンをクリックしてファイルをダウンロードすることだけです。 は現在、私はネイティブAngular2 Httpサービスを介してAJAXリクエストを送信し、私はそれが実際にファイルを返しますが、私は適切な方法でそれをデコードする必要が理解したようこのAngular2:バックエンドからダウンロードしたxlsファイル

`��ࡱ�;�� ��������������������������������` ... 

のようなものを取得していますか?

解決策はありますか?

答えて

1

httpリクエストを送信しているサービスまたはコンポーネント内にあります。あなたの応答をblobにマップします。 @ angle/httpからResponseContentTypeをインポートします。ダウンロードするために、次のように実行します。サービスで

var link=document.createElement('a'); 
link.href=window.URL.createObjectURL(res); 
link.download="District.xls"; 
link.click(); 

は次のように実行します。

import { Response, ResponseContentType } from '@angular/http'; 

downloadExcel(){ 
     let url = 'your url/api' 
     return this.http.get(url,{headers:'pass your header',responseType: ResponseContentType.Blob}) 
     .map(response=>response.blob()) 
     .catch(error=>{return Observable.throw(error)}) 
    } 
関連する問題