关于如何下载通过Web API生成的文件的另一个问题。
拥有一个.NET Web应用程序,Web API控制器使用基于令牌的身份验证和带有knockout / jquery的普通MVC视图。
我的问题是: 在客户端浏览器中将文件下载作为响应返回的最佳方法是什么?
看看以下方法:
$.ajax({
type: 'GET',
url: "/api/Returns",
data: { fromMonth: selFromMonth.value, toMonth: selToMonth.value},
contentType: "application/json; charset=utf-8",
dataType: "json",
headers: { 'Authorization': 'Bearer ' + accessToken },
success: function (result) {
...
}
});
有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
我最终在成功回调中添加了以下代码 var form = document.createElement(“form”); var txt = document.createElement(“input”);
form.method = "POST";
form.action = "/api/Reports";
txt.value = JSON.stringify(result);
txt.name = "txt";
txt.type = "hidden";
form.appendChild(txt);
document.body.appendChild(form);
form.submit(); `
还必须在Web API方法上添加以下更改:
public HttpResponseMessage Post([FromBody]JToken jsonbody)
{
if (jsonbody["data"] != null)
{
var data = JsonConvert.DeserializeObject<List<Return>>(jsonbody["data"].ToString());
}
}
关于这一切背后的想法的更多解释:
希望这对某人有用。