XMLHttpRequest 跨域请求CORS会出现http响应头不全的情况,但是在chrome中正常显示,js获取不全。
    需要在服务端增加配置响应的请求头。
    response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
    即可拿到响应头

    1. async downloadFile ( url :string ,fileName?:string ){
    2. const req = new XMLHttpRequest();
    3. const token = 'get token'
    4. req.open('get', url);
    5. req.setRequestHeader('token', token);
    6. req.responseType = 'blob';
    7. req.onreadystatechange = ()=>{
    8. if (req.readyState === 4 && req.status === 200) {
    9. const headerfileName = req.getResponseHeader('Content-Disposition') ;
    10. if(headerfileName){
    11. fileName = decodeURI(headerfileName.replace('attachment;filename=', ''));
    12. }
    13. const blob = new Blob([req.response]);
    14. const blobUrl = window.URL.createObjectURL(blob);
    15. const a = document.createElement('a');
    16. a.href = blobUrl;
    17. a.download = fileName ;
    18. a.click();
    19. }else{
    20. console.log('服务异常。');
    21. }
    22. }
    23. req.send();
    24. }