我有一个生成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."); }); };
您无法从常规的ajax GET或POST启动下载,而必须执行传统方式,例如window.location='url',使用正确的内容类型设置正确的http标头,这将在用户浏览器中提示下载对话框
window.location='url'