我在基於Java
的Web應用程序中創建報告(使用JasperReports
)。每個報告都由Servlet
生成並流式傳輸回用戶。 我有作爲附件發回的報告存在問題。 (因爲瀏覽器無法打開Excel文件,Excel報告必須以此方式發回)。而且,這些Excel報告需要很長時間才能生成,因此我在一個新選項卡中打開它們。同時我在原始選項卡中發佈信息消息。 (類似於「請不要關閉新標籤」)。收到servlet響應時的通知
主要問題是我需要知道報告何時失敗或成功。更具體地說,我需要知道回覆是否已發回,我需要知道該回復是報告還是錯誤(現在我正在發送兩個不同的Cookie)。如果失敗,我需要顯示一條錯誤消息,否則我需要刪除信息消息。
我試圖使用jQuery.post()
來調用servlet,但是然後沒有出現下載對話框。因此我使用form
s。無論如何,服務器都會發送一個cookie。在客戶端,我在等待cookies,當我收到一個cookies時,我決定要做什麼。這種方法很好地工作,如在here偉大的職位desicribed。 但是如果cookie在客戶端被禁用,我可以採取什麼方法?
我不明白這部分:「我試圖用jQuery.post()來調用servlet,但是沒有下載框。」你在說什麼下載箱? – claymore1977
我說的是下載對話框,如果響應是附件,則顯示下載對話框。 (我會改變這部分的問題) – Atticus
@ claymore1977:它是**不可能**使用純JavaScript/Ajax作爲附件下載文件(顯示一個*另存爲*對話框),因爲JS沒有任何功能顯示一個*另存爲*對話框。它必須使用完全同步的請求進行。 – BalusC