在我們正在處理的網站上,我們有一個下載鏈接,必須提供給用戶。但是,在獲取url時,服務器可以在JSON中提供錯誤消息(將設置適當的頭文件和適當的http狀態代碼)或提供文件。下載大文件或顯示錯誤
目前,我們正在使用iframe下載此文件,但這會阻止我們查看錯誤消息。雖然原則上可以這樣做,但它不能跨域進行,並且讀取錯誤數據似乎在瀏覽器之間不同(因爲瀏覽器會將json解釋爲html並在其周圍創建html標記)
I已經考慮使用xmlhttprequest2來下載文件並將其提供給用戶,但是下載的文件可能很大,因此必須將其傳輸給用戶。
因此,我正在尋找一種方法來下載文件或根據http狀態代碼讀取錯誤消息。
API設置
我能到API的轉變讓我的願望,但是API的設計是一個公共API,並且被設計爲REST API。這意味着,API應該儘可能簡單,並且使特定客戶端代碼工作的解決方法不應該對其他客戶端造成任何困惑(因此API和客戶端代碼是分離的)。
正在下載的文件在服務器上被加密,只能通過URL中給出的信息進行解密。因此,分塊傳輸很困難,因爲提取塊需要服務器解密整個文件。
你有控制服務器響應嗎?你可以改變回應是一個錯誤代碼和錯誤消息或成功的代碼和文件的網址?如果是這樣,你可以做一個Ajax調用,併成功重定向到URL。如果這不起作用,請解釋一下你的設置可以防止這種情況。 – TinMonkey
期望什麼'MIME'類型的文件? – guest271314
@TinMonkey,是的,我喜歡。但總的來說,任何錯誤都是一個例外,我寧願提出一個請求,但我只是開始使用下面描述的HEAD方法來實現。它也涉及到一個REST API,所以這樣的重定向並不適合設計,但是HEAD當然會採用一種方法:)。 – user23127