当前位置: 首页 > 面试题库 >

POST到服务器,接收PDF,使用jQuery交付给用户

贺飞星
2023-03-14
问题内容

我有一个链接,用户单击该链接即可获取PDF。在jQuery中,我创建了对服务器的POST
ajax调用以获取PDF。PDF附带正确的内容标题等,通常会导致浏览器打开Reader插件,或者允许用户保存PDF。

由于我正在通过ajax调用获取PDF,因此我不确定如何处理在OnSuccess回调中获取的数据。如何将接收到的数据提供给浏览器,并允许它对PDF响应执行默认操作?


问题答案:

您根本不需要jQuery。只需通过表单正常提交POST,然后在服务器端添加HTTP标头

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

浏览器将执行其默认操作。

或者,如果您要更小心地报告在PDF生成期间可能发生的任何错误,则可以执行此操作。使用jQuery将参数发布到服务器。在服务器上,生成二进制内容并将其缓存到某处几分钟,可通过您放置在用户会话中的密钥进行访问,然后将“成功”
Ajax响应返回到您的页面(或者,如果有错误,则返回一个“错误”响应)。如果页面返回成功响应,它可以立即执行以下操作:

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

然后,服务器返回缓存的PDF内容。确保包含如上所述的Content-Disposition标头。



 类似资料:
  • 问题内容: 我正在尝试使用FormData对象将一个文件和一个文本变量发送到我的服务器。查看Chrome开发人员工具中的“网络”标签,可以看到文件和变量正在发送。但是,我在$ _POST和$ _FILES变量上尝试了var_dump(),并且都显示为空数组。这是我用于表单的代码: 我已经尝试过在内容类型中添加和不包含“ charset = utf-8”的代码,但这似乎没有什么不同。这里发生了什么?

  • HTTP/1.1 200确定缓存-控制:max-age=0,必须重新验证 内容-处置:附件;filename=“执行摘要.pdf” 内容-类型:application/pdf

  • 问题内容: 我正在将javascript / php / ajax应用程序转换为使用jQuery,以确保与Firefox以外的浏览器兼容。 我在使用jQuery的ajax函数传递true,false和null值时遇到麻烦。 JavaScript代码: PHP代码: 服务器输出: 问题在于null,true和false值正在转换为字符串。 当前使用的Javascript AJAX代码正确传递了nul

  • 我遇到了一种奇怪的情况,第一次需要连接到SFTP服务器,但似乎找不到访问该服务器已知主机条目的方法。如果我说: 但显然这让你容易受到中间人的攻击。因此,我尝试连接: 我会收到各种各样的错误信息。最近的一次是: 我运气不好吗?我是不是应该绕过钥匙检查?

  • 问题内容: ‘create’方法在控制器中并映射到“ / login”,我正在设置正确的内容类型并接受来自curl客户端的标头。我一直都收到422 http状态响应。 有什么建议? 问题答案: 如果您发送的是正确的标题,则不需要执行“ ActiveSupport :: JSON.decode”-rails会为您完成。 您需要在帖子中设置以下标题。 422表示不可处理实体-通常表示验证失败。 您应该

  • 本文向大家介绍使用phpMyAdmin连接到外部服务器,包括了使用phpMyAdmin连接到外部服务器的使用技巧和注意事项,需要的朋友参考一下 下面的代码行可以添加到底部的/etc/phpmyadmin/config.inc.php文件中- 它将显示“当前服务器:”,并同时下拉“ 127.0.0.1”和$cfg ['Servers'] [$i] ['host']提供的下拉列表。 用户可以在两个服务