通过使用$ .get调用HTTPHandler流式传输PDF到object元素

我想要做的是通过jQuery的$ .get方法调用HTTPHandler,它将流回PDF并使用对象元素在网页中显示它。 我之前设置IFrame的src属性的方法是处理程序调用的结果,但是我希望跨浏览器完成通知,所以已经转移到使用$ .get()。 示例代码:

function buttonClick() { $.get("/PDFHandler.ashx", {}, function(data, textStatus, XMLHttpRequest) { var pdfObjectString = ""; var pdfObject = $(pdfObjectString); pdfObject.attr("data", data); $("#container").append(pdfObject); }); 

如您所见,我试图将’data’变量粘贴到object元素中。 这不起作用(没有错误,PDF只是不显示),可能是因为返回的数据是二进制的,但attr()方法需要一个字符串(我认为)。

我的问题是:如何通过$ .get调用HTTPHandler并以某种方式将回调中的数据分配给对象的data属性?

基于这个问题: 如何使用JavaScript打开文件? 我能够找到解决方案。 基本上,您在成功回调函数中再次调用处理程序。 我无法使用标签(仍然使用IFrame),但它足以满足我的需要。

为此,HTTP处理程序必须缓存结果,否则它将再次被调用。

我已经挣扎了好几个小时才有这样的工作,这是我非常简单的解决方案,完美地工作:

  1. 在浏览器方面,我有一个包含在DIV标签中的iFrame,但可以在任何你想要的地方。 您可以根据需要更改iFrame属性以隐藏/显示它。