2017-04-20 25 views
0

这里我有硬编码文件名但我想从我的春季服务获得文件名,我已经在http响应头中设置了文件名。如何在js结束时获取文件名。如何在angularjs中使用http获取标题信息?

$http.post('/myrest/rest/getVendorExcelDownload',$scope.exelReportInputDTO,{responseType: 'arraybuffer'}) 
    .success(function(data, status, headers, config){ 
     console.log("inside success"); 
     var fileName = "Vendor_Excel_Reports.xls"; 
     var a = document.createElement("a"); 
     var blob = new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}); 
     var objectUrl = URL.createObjectURL(blob); 
     a.href = objectUrl; 
     a.download = fileName; 
     a.click(); 

    }).error(function(data){ 
     console.log("inside error"); 
    }); 
+0

你期待从春季服务的文件名?如果是的话,你从Spring控制器得到的回应是什么? – CrazyMac

+0

是的,我正在使用弹簧服务和响应我得到这个。 byteLength:13824 __proto__ : ArrayBuffer byteLength : (...) 构造 : 功能ArrayBuffer() 片 : 功能切片() 符号(Symbol.toStringTag) : “ArrayBuffer “ 得到byteLength : 功能byteLength() __proto__ : 对象 – Priyam

+0

你可以发布你的反应和Spring对照这个服务的oller代码?我无法按照您上面发布的回复进行回复 – CrazyMac

回答

0

你可以尝试从头部得到的文件名这样的..

var req = { 
 
    method: 'POST', 
 
    url: '', //your API 
 
    headers: { 
 
    id: id // get your filename from header 
 
    } 
 
} 
 
$http(req) 
 
    .then(function mySucces(response) { 
 
     //your success code! 
 
    }, 
 
    function myError(response) { 
 
     //your error code! 
 
    });

相关问题