【问题标题】:responseType blob works but not new Blob with AjaxresponseType blob 有效,但不是 Ajax 的新 Blob
【发布时间】:2020-07-19 13:59:15
【问题描述】:

我需要根据 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))
})

【问题讨论】:

    标签: javascript jquery ajax blob mime-types


    【解决方案1】:

    除了确保路由确实返回 application/pdf 响应类型之外,这个问题似乎没有任何其他解决方案。那么我们就可以这样使用pdf了:

    let data = api.get('/route', {responseType: "blob"})
    let pdfBlob = new Blob([data], { type: "application/pdf" });
    let pdfPreview = URL.createObjectURL(pdfBlob);
    

    【讨论】:

      猜你喜欢
      • 2020-07-06
      • 1970-01-01
      • 2021-04-12
      • 2021-09-17
      • 2018-08-25
      • 2022-01-09
      • 2013-05-26
      • 1970-01-01
      • 2020-07-13
      相关资源
      最近更新 更多