一尘不染

使用Angular通过Ajax下载文件

ajax

我有一个生成CSV文件并将其通过http / ajax get返回到页面的服务。我希望用户单击按钮,调用服务,然后将文件下载到用户的浏览器。

我想使用Angular Way,尽管我认识到这可能与Ajax或浏览器的关系要比Anguler本身更多。

该服务在C#中,它返回的内容是:

return File(Encoding.UTF8.GetBytes(WriteCSV(assetList)), "text/csv", "results.csv");

调用该服务的控制器代码如下所示。它有效,但是我不知道如何成功:

$scope.exportCSV = function () {
    $http({
        method: "get",
        url: "ExportCSV"
    }).
        error(function (data, status, headers, config) {
            alert("Error exporting data to CSV.");
        });
};

阅读 357

收藏
2020-07-26

共1个答案

一尘不染

您无法从常规的ajax
GET或POST启动下载,而必须执行传统方式,例如window.location='url',使用正确的内容类型设置正确的http标头,这将在用户浏览器中提示下载对话框

2020-07-26