在Firefox 52.9版本使用fetch获取PDF文件流发生302重定向问题?

发布于 2022-09-11 23:15:17 字数 770 浏览 41 评论 0

在火狐浏览器 52.9版本中使用fetch从服务端获取pdf文件流发生302重定向,在chrome浏览器和高版本火狐就能够正常显示。

fetch(url, {
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
    },
    responseType:'blob',
    body: data
}).then(res=>{
    console.log(res);
    return res.blob();
}).then(blob=>{
    let blobUrl = window.URL.createObjectURL(blob);
    $("#pdfFile").attr("src",blobUrl);
    $("#pdfPrintModal").modal({backdrop: 'static', keyboard: false});
    if(typeof (callback)=="Function"){
        callback();
    }
})

原来的思路是将文件流转成blob URL通过iframe的src在页面打开,但是现在在火狐里发成了重定向问题,直接跳到了登录页面。
返回的pdf文件流:
返回的pdf文件流

求大佬指点迷津!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

殤城〤 2022-09-18 23:15:17

改用原生的ajax解决问题。

var oReq = new XMLHttpRequest();
oReq.open("POST",url, true);
oReq.responseType = "blob";
oReq.onload = function (oEvent) {
    var content = oReq.response;
    var blob = new Blob([content],{type : 'application/pdf'});
    let blobUrl = window.URL.createObjectURL(blob);
    $("#pdfFile").attr("src",blobUrl);
    $("#pdfPrintModal").modal({backdrop: 'static', keyboard: false});
 };
oReq.setRequestHeader("content-type","application/json");
oReq.setRequestHeader("Accept","application/json")
oReq.send(data);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文