use*_*311 3 html php pdf ajax xmlhttprequest
我想做XMLHttpRequest然后通过POST方法发送文件名在浏览器中打开PDF.
xmlhttp.open("POST","pdf.php",true); //CHANGE
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("file="+input);
Run Code Online (Sandbox Code Playgroud)
这是可能的还是XMLHttpRequest只适用于HTML?
如果您要查询的URL实际返回PDF数据,则无法通过XMLHttpRequest执行此操作.
为什么?因为响应是包含原始PDF数据的HTTP响应.没有JavaScript能够用当前文档的DOM内容替换该数据中包含的PDF,即使您可以通过responseText属性访问数据 (另请参阅http://www.w3.org/TR)/XMLHttpRequest/#the-responsetext-attribute).
您可以做的是将PDF文件生成到可通过Web服务器的URL访问的临时文件中,然后让脚本发回用于访问该文件的URL.
当您的响应处理程序处理URL时,它可以:
通过更改重新加载当前页面 window.location.href = new_pdf_url
<iframe>通过更改iframe的src属性将其加载到当前文档的内部
在另一个窗口打开它 window.open(new_pdf_url, XXX)
请注意,您仍然需要一个临时文件位置的URL来打开一个新窗口