我使用Asp.Net WebApi和jQuery。 从页面到WebApi,我发送'POST'HTTP-Request with object。
$.ajax({
type: "POST",
url: "api/Result",
data: JSON.stringify(makeResultInfo()),//makeResultInfo - function that returns object
contentType: "application/json; charset=utf-8",
dataType: "json",
processData: true,
success: function (data) {
window.location = data;
alert("success");
},
error: function (xhr) {
alert('error');
}
});
WebApi正确获取对象并返回Excel文件。
[HttpPost]
public HttpResponseMessage Post([FromBody]ResultInfo value)
{
ExcelClass ec = new ExcelClass();
var stream = ec.GetStream(ec.mini_wb);//после теста поправить
// processing the stream.
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream.ToArray())
};
result.Content.Headers.ContentDisposition =
new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = "test.xlsx"
};
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
return result;
}
当我在没有参数的情况下发出'api / Result'请求时 - 正确下载文件。但是当我发送对象时,响应始终不正确并且警告始终写入“错误”。
我如何在浏览器中发送对象并获取文件?