javascript - 从 ASP.NET CORE Web Api 获取 React 中的特定响应 header (例如,Content-Disposition)

标签 javascript c# reactjs asp.net-core asp.net-core-webapi

我从 WebAPI 返回一个文件 Controller 。 Content-Disposition header 值会自动填充,它还包含我的文件名。

我的后端代码如下所示:

[HttpGet("Download")]
public async Task<ActionResult> Download([FromQuery]CompanySearchObject req)
{
    string fileName = "SomeFileName_" + DateTime.UtcNow.Date.ToShortDateString() + ".csv";

    var result = await _myService.GetData(req);

    Stream stream = new System.IO.MemoryStream(result);

    return File(stream, "text/csv", fileName.ToString());
}

在我的前端:
exportData(params).then(response => {
      console.log(response);
      console.log('Response Headers:', response.headers);
      const type = response.headers['content-type'];
      const blob = new Blob([response.data], { type: type, encoding: 'UTF-8' });
      //const filename = response.headers['content-disposition'].split('"')[1];
      //alert(filename);
      const link = document.createElement('a');
      link.href = window.URL.createObjectURL(blob);
      link.download = 'file.xlsx';
      link.click();
      link.remove();
   });
};

enter image description here

但我正在努力获取这些数据,因为当我在前端执行 console.log 时,我看不到这个.. 如你所见,我记录了响应 console.log('Response Headers:', response.headers);但我唯一看到的是:

enter image description here

这些数据不应该在某个地方吗?我想知道如何从 Content-Disposition 读取值并获取文件名?

多谢你们
干杯

最佳答案

有同样的问题。我的问题是CORS。如果您正在使用它,则需要在配置中像这样公开它:

app.UseCors(builder =>
            {
                builder.AllowAnyOrigin();
                builder.AllowAnyMethod();
                builder.AllowAnyHeader();
                builder.WithExposedHeaders("Content-Disposition"); // this is the important line
            });

关于javascript - 从 ASP.NET CORE Web Api 获取 React 中的特定响应 header (例如,Content-Disposition),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57621848/

相关文章:

c# - 当它绑定(bind)到 XmlDataProvider 时,如何在 WPF DataGrid 中创建一个新行?

c# - Microsoft Graph - 获取成员(member)资格

javascript - 数组总是获取每个元素的最后一个值

reactjs - 无法使用 React Test Utils 模拟 mouseEnter 事件

javascript - 现代 JavaScript 中是否存在以前使用过 "bind"的情况下无法使用箭头函数的情况?

javascript - 删除特定的内联元素

javascript - Angular 嵌套对象 - TypeError : Cannot read property 'app' of undefined

javascript - 如何计算谷歌地图最大和最小纬度和经度

c# - 具有继承映射的 linq2db 插入

javascript - 如何按日期呈现列表,同时将 div 中具有相同日期的项目分组