POST to server, receive PDF, deliver to user w/ jQuery

前端 未结 7 1499
逝去的感伤
逝去的感伤 2020-11-27 04:01

I have a link that the user clicks to get a PDF. In jQuery, I create a POST ajax call to the server to get the PDF. The PDF comes to me with the correct content headers et

7条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-27 04:32

    You don't need jQuery at all. Just submit your POST via a form normally, and on the server side, add the HTTP header

    Content-Disposition: attachment; filename="whatever.pdf"
    

    The browser will do its default thing.

    Alternately, if you want to be more careful about reporting any errors that might occur during the PDF generation, you can do this. POST your parameters to your server with jQuery. On the server, generate the binary content and cache it somewhere for a few minutes, accessible via a key that you put in the user's session, and return a "success" Ajax response to your page (or if there was an error, return an "error" response). If the page gets back a success response, it can immediately do something like:

    window.location = "/get/my/pdf";
    

    The server then returns the cached PDF content. Be sure to include the Content-Disposition header, as above.

提交回复
热议问题