目标:显示一个pdf文件,使用ember在新窗口中作为服务器响应接收。
路线文件中的代码:
actions: {
pdfClick(assessmentId) {
var result = [];
return new Ember.RSVP.Promise(function (resolve, reject) {
Ember.$.ajax({
type: 'GET',
url: 'http://localhost:4200/abc/secured/rest/questions/166',
success: function (data) {
var winlogicalname = "detailPDF";
var winparams = 'dependent=yes,locationbar=no,scrollbars=yes,menubar=yes,' +
'resizable,screenX=50,screenY=50,width=850,height=1050';
var detailWindow = window.open("content-type:application/pdf");
detailWindow.document.write(data);
},
error: function (request, textStatus, error) {
console.log(error);
}
});
});
}
}
混乱:
var detailWindow = window.open("content-type:application/pdf");
detailWindow.document.write(data);
在window.open中,我们将内容类型设置为application / pdf,然后当我们尝试写入数据(作为来自服务器的响应而接收的PDF文件的字节流)时,垃圾数据将出现在新窗口中。
如果我通过Chrome浏览器点击该服务,则Chrome可以显示pdf,但如果我使用ember ajax使用相同的服务,则无法在新窗口中显示pdf。