小编典典

XMLHttpRequest在浏览器中打开PDF

ajax

我想执行XMLHttpRequest,然后通过POST方法发送文件名在浏览器中打开PDF。

   xmlhttp.open("POST","pdf.php",true); //CHANGE
   xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
   xmlhttp.send("file="+input);

这可能吗,或者XMLHttpRequest仅用于HTML?


阅读 361

收藏
2020-07-26

共1个答案

小编典典

  1. 如果您查询的URL实际上返回PDF数据,则无法通过XMLHttpRequest进行操作。

为什么?因为该响应是包含原始PDF数据的HTTP响应。即使您确实可以通过responseText`属性访问数据,JavaScript也无法用该数据中包含的PDF呈现来替换当前文档的DOM内容
(另请参见http://www.w3.org/TR) / XMLHttpRequest /#the-responsetext-
attribute)。

  1. 您可以做的是将PDF文件生成为可通过Web服务器的URL访问的临时文件,然后让脚本将URL发送回以访问该文件。

当您的响应处理程序处理URL时,它可以:

* 通过更改重新加载当前页面 `window.location.href = new_pdf_url`

* `<iframe>`通过更改iframe的`src`属性将其加载到当前文档的内部

* 通过在另一个窗口中打开它 `window.open(new_pdf_url, XXX)`

请注意,您仍然需要指向临时文件位置的URL才能打开新窗口

2020-07-26