亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js中如何使用ajax的get來向后臺獲取文件流進行文件下載(其中header中傳token參數)

js中如何使用ajax的get來向后臺獲取文件流進行文件下載(其中header中傳token參數)

慕無忌1623718 2018-07-23 19:14:03
js中如何使用ajax的get來向后臺獲取文件流進行文件另存為的下載其中header需要傳token和os參數到后臺進行驗證請問這個JS應該如何寫?希望大神不吝賜教,謝謝~如下方法后臺無法獲取header參數,360瀏覽器中也沒有啟動另存為的窗口var url = "{#$apiHost#}/aw/export?brand_ids="+brand_ids;var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = "blob"; xhr.setRequestHeader("token", "5f963175cc75613398e25ce2e5da56d7"); xhr.setRequestHeader("os", "1"); xhr.onload = function() {    if (this.status == 200) {        try{            var elemIF = document.createElement("iframe");             elemIF.src = this.responseURL;             elemIF.style.display = "none";            document.body.appendChild(elemIF);         }catch(e){         }     } } xhr.send();
查看完整描述

2 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

改成這樣就好了。

var xhh = new XMLHttpRequest();
                xhh.open("post", Action.FILES_W_DOWNLOADFILE + "/"+ fileName );
                xhh.setRequestHeader("Authorization", this.Axios.defaults.headers.Authorization = JSON.parse(getCookie('userInfo')).tokenType+ ' ' + JSON.parse(getCookie('userInfo')).accessToken);
                xhh.setRequestHeader("Content-Type","application/json");
                xhh.responseType = 'blob';
                xhh.onreadystatechange = function () {                    if (xhh.readyState === 4 && xhh.status === 200) {                        var name = xhh.getResponseHeader("ajax-filename");                        var mimeType = xhh.getResponseHeader("ajax-mimeType");                        var blob = new Blob([xhh.response], {type: mimeType});                        var csvUrl = URL.createObjectURL(blob);                        var link = document.createElement('a');                        document.body.appendChild(link); //創建的標簽添加到body,解決Firefox下無法打開頁面的問題
                        link.href = csvUrl;
                        link.target = '_blank';
                        link.id = 'linkId',
                        link.className = 'linkId',
                        link.download = decodeURI(name);                        document.getElementById("linkId").click();                        // link.remove(); //將a標簽移除
                        $('.linkId').remove()
                    }
                };
                xhh.send();


查看完整回答
反對 回復 2018-07-29
  • 2 回答
  • 0 關注
  • 949 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號