generateSoldGoodsReport

generateSoldGoodsReport

我正在根据xlsx中的某些用户输入生成一个express文件。该信息是通过post请求提交的,我想通过res.download(...)返回文件的内容。

如果这样做,我在data响应的ajax字段中会得到“垃圾”。

我试图使用this解决方案来提示下载,但是内容仍然是“垃圾”。

这是我的角度控制器:

$ scope.generateSoldGoodsReport = function(){
        reportService.generateSoldGoodsReport({
            startDate:$ scope.startDate,
            endDate:$ scope.endDate
        })
        .then(function(report){
            var blob = new Blob([report],{type:'application / xlsx'});
            $ scope.url =(window.URL || window.webkitURL).createObjectURL(blob);
        })
    }


这是我的服务:

generateSoldGoodsReport:函数(日期){
    var deferred = $ q.defer()

    $ http.post('/ api / secure / generateSoldGoodsReport',日期)
                        .then(function(response){
                            deferred.resolve(response.data)
                        })
        返回递延承诺
    }


这是我的服务器端代码:

sendFileResponse =函数(res){
    返回函数(err,fileDetails){
        如果(错误)
        {
             res.json({
                 错误:1
                 讯息:err.message,
                 详细信息:err.errors
             })
         }
         其他
         {
             res.download(fileDetails.path +'/'+ fileDetails.fileName)
         }
      }
 }

最佳答案

最后,我最终使用了一种解决方案,其中在post请求中生成了报告,当响应发送到客户端时,我对存储生成的报告的预定义位置提出了get请求。我不喜欢这种解决方案,因为我使用两个请求而不是一个。

关于javascript - 如何从Express下载 Angular xlsx,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29987847/

10-11 10:21