2016-04-27 71 views
0

我的應用程序必須生成應該可以用XLS格式下載的報告。我已經使用Django Rest Framework構建了一個REST API,並且有一個用於報告生成的端點。它接受帶有JSON主體的POST請求(報告參數,如from,to等,但也有一些用JSON對象表示的數據)並返回JSON結果。我成功地從Javascript中使用它,將報表呈現爲HTML表格,並且工作得很好。如何允許用戶保存來自REST API的報告?

我的問題是,我需要允許用戶將報告保存爲一個.xls文件與一個像樣的文件名(如myawesomereport.04.12-10.12.xls。我試過JS數據url的方法,但據我瞭解,沒有辦法設置一個(除了在a標記上設置download屬性,但它的支持是有限的,所以這不是一條可行的路線)我想我應該打開一個新的窗口,並且適當地形成我的API端點的url ,所以它輸出的XLS文件,但問題是,如果有這一要求發送JSON的方式我不懂。

我應該如何看待這個問題呢?

回答

0

您可以使用標頭Content-Disposition在後端設置文件名,以便在前端可以使用標準的<a>標籤。

在DRF,它應該是這樣的:

response['Content-Disposition'] = 'attachment; filename={}'.format(
    file_name 
) 
+0

但我怎麼能提供JSON數據擺在首位這一要求? – Cracker

+0

使用POST請求下載內容並不常見。您可以使用GET請求並將參數作爲url參數傳遞。 或者您可以使用POST請求返回一個唯一的鏈接,並使用'window.open(data.url)'打開它。 – JoseKilo

相關問題