gpt4 book ai didi

javascript - 使用 jquery 下载 AJAX PDF

转载 作者:行者123 更新时间:2023-11-29 20:15:17 24 4
gpt4 key购买 nike

这就是我想要做的:

我想向服务器发送一个 HTTP 请求,可能会返回一个 PDF 文件。但服务器也可能只返回错误代码(PDF 文件不可用、PDF 文件无效、PDF 系统停机等)。当我得到 PDF 时,我想打开 PDF 并刷新加载 PDF 的页面,因为 PDF 随后被标记为“已读”。当我收到错误代码(或超时)时,我想将页面重定向到错误屏幕。下载 Google Chrome 的工作方式类似:

http://www.google.com/chrome/eula.html?hl=en&platform=win

这是我不想做的:

出于性能原因,我不想按照此处问题中的建议发出两个请求:

Download and open pdf file using Ajax

两个请求可能意味着:

  1. 请求 PDF 并返回一个代码以指示 PDF 是否可用。如果不可用,立即显示错误页面
  2. 如果可用,打开一个窗口并在该窗口中再次请求 PDF,然后显示它。

这很昂贵,因为必须通过远程系统访问 PDF。我不想访问 PDF 资源两次。涉及两个请求的另一种解决方案:

  1. 请求 PDF 并检索错误代码或缓存 PDF 的临时 URL。出错时,立即显示错误页面
  2. 如果 PDF 可用,请打开一个窗口,其中显示缓存的 PDF。

这将需要相当大的 PDF 缓存

这可能是一个有趣的线索:

我在这里发现了这个问题,它为我提供了一些有关如何下载二进制数据并使其在 JavaScript 中作为二进制数据可用的信息:

Is there a way to read binary data in JavaScript?

也许这是一个很好的引导,但当然它还不能解决我的问题,因为我想使用浏览器的默认编辑器打开文件,就像我从普通 URL 请求文件一样。

那么问题是:

我可以从 JavaScript 下载二进制数据并像打开常规文档一样打开它们吗?如果没有,我会将文档缓存在 Weblogic 中的某个托管内存容器中,只是希望这不会杀死我们的系统。请只回复:

  • 如果您确定无法完成(一些解释原因的链接会很好)
  • 如果你知道怎么做
  • 如果您有不同的解决方案来大致完成我想做的事情(不发出两个请求)

最佳答案

实现的“老式”解决方案是这样工作的:

  1. JavaScript 客户端向服务器发送 AJAX 请求以“准备”PDF 文档
  2. 服务器用以下三种消息中的任何一种进行响应:
  3. 然后 JavaScript 客户端会做出如下 react :
    • a) 在新窗口打开返回的URL,5秒后刷新当前窗口
    • b) 当前窗口被重定向到错误屏幕
    • c) 当前窗口保持不变,实现AJAX轮询以重复步骤2

关于javascript - 使用 jquery 下载 AJAX PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7349775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com