我正在尝试使用包含HTML或PDF(我选择)的内存流。
我遇到的问题是我无法将此内容呈现给我的页面。内容将显示在页面上,但它在屏幕上显示为乱码。如果我采用相同的流并将其保存到文件并打开它,它会正确显示。
从服务器返回时,我是否错误地设置错误了?
在我的网页上我有:
java -version
HTML看起来像这样:
function getData()
{
$.ajax({
type: 'GET',
url: '/Main/MyController/GetPrintData',
data: {
reportID: 1,
format: 'pct',
cumeReach: 'abc',
showAddl: 'true',
precision: 'false'
},
contentType: 'application/pdf' //'text/html'
}).success(function (result) {
$('#reportData').append(result);
}).error(function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
});
};
答案 0 :(得分:0)
注意.success()
,jQuery中不推荐使用.error()
;可以将.done()
,.fail()
替换为.success()
,.error()
尝试
HTML
<embed width="100%" height="100%" name="plugin" id="result" />
JS
$("#result")[0].src = URL.createObjectURL(new Blob([result], {"type":"application/pdf"}));
答案 1 :(得分:0)
看来我的原始解决方案是正确的。 在检查代码后,我发现了内存流创建方式的问题。
我正在使用Aspose来创建流。 我以前有过 return book.SaveToStream(); 我换了它 流finalStream = new MemoryStream(); book.Save(finalStream,saveOptions); return finalStream;
一旦我做了这个改变,显示器就有效了!