XMLHttpRequest 在浏览器中打开 PDF

XMLHttpRequest to open PDF in browser(XMLHttpRequest 在浏览器中打开 PDF)
本文介绍了XMLHttpRequest 在浏览器中打开 PDF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想做 XMLHttpRequest,然后通过 POST 方法发送文件名,在浏览器中打开一个 PDF.

I want to do XMLHttpRequest and then open a PDF in the Browser by sending the filename by POST method.

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

这可能还是 XMLHttpRequest 仅适用于 HTML?

Is that possible or XMLHttpRequest is just for HTML?

推荐答案

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

  1. It is not possible to do via XMLHttpRequest if the URL you are querying actually returns the PDF data.

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

Why? Because the response is an HTTP response which contains raw PDF data. There is no JavaScript ability to replace the current document's DOM contents with a rendering of a PDF contained in that data, even though you DO have access to the data via responseText` attribute (also see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute).

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

What you CAN do is to generate a PDF file into a temporary file accessible via a URL from your web server, and then have the script send back the URL for accessing that file.

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

When your response handler processes the URL, it can either:

  • 通过更改 window.location.href = new_pdf_url

通过更改 iframe 的 src 属性将其加载到当前文档内的

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)