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

新手上路,请多包涵

在火狐浏览器 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文件流

求大佬指点迷津!!!

阅读 3.1k
1 个回答
✓ 已被采纳新手上路,请多包涵

改用原生的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);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题