猿问

responseType blob 有效,但不是 Ajax 的新 Blob

我需要根据 ajax 响应的内容类型(使用 jQuery)打开一个 pdf。


事先不知道响应类型,这就是我遇到此问题的原因:


此代码不起作用(我得到一个空 PDF),这是我需要使用的代码:


$.ajax("/route").done((data)=>{

    console.log(URL.createObjectURL(new Blob([data], {type: 'application/pdf'})))

})

此代码有效,我的 PDF 通过单击链接正确显示。但是我事先不知道响应类型,所以我不能使用这个代码。


$.ajax("/route", {

    xhrFields:{

       responseType: 'blob'

    }

})

.done((data)=>{

    console.log(URL.createObjectURL(data))

})


撒科打诨
浏览 235回答 1
1回答

UYOU

除了确保路由确实返回 application/pdf 响应类型之外,这个问题似乎没有任何其他解决方案。然后我们可以这样使用pdf:let data = api.get('/route', {responseType: "blob"})let pdfBlob = new Blob([data], { type: "application/pdf" });let pdfPreview = URL.createObjectURL(pdfBlob);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答