无法从服务器获取文件

时间:2017-05-17 12:09:49

标签: javascript jquery asp.net asp.net-web-api

我使用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'请求时 - 正确下载文件。但是当我发送对象时,响应始终不正确并且警告始终写入“错误”。

我如何在浏览器中发送对象并获取文件?

0 个答案:

没有答案