【问题标题】:ASP.NET Core 2 - Missing content-type boundaryASP.NET Core 2 - 缺少内容类型边界
【发布时间】:2019-01-27 08:11:36
【问题描述】:

我正在尝试将文件从 Angular 客户端上传到我的 ASP.NET Core 2 WebAPI 服务。当我调用该服务时,我得到一个内部服务器错误。这就是我得到的错误:

我在客户端使用的组件是这个:ngx-uploader

在我的请求选项中,我将它们设置为您可以在此处看到的:

  const event: UploadInput = {
  type: 'uploadAll',
  url: this.printService.apiFilesBaseUrl + '/Upload',
  method: 'POST',
  file: this.files[0],
  headers: {
    'Content-Type': 'multipart/form-data',
    'Accept': '*/*',
    'Authorization': 'Bearer ' + this.authService.getToken()
  }
};

虽然,服务器端我的控制器动作签名是这个:

    [HttpPost]
    [Route("Upload")]
    [Authorize]
    public Guid Post(IFormFile file)

此控制器操作中的断点永远不会被击中。

有人可以分享一下这里发生的事情吗?

在这里,根据要求,我将发布我的请求标头和有效负载:

提前致谢。

【问题讨论】:

  • 在 UploadInput 中尝试使用 'uploadFile' 而不是 'uploadAll'
  • @PraveenRai 没有任何变化。
  • 在网络浏览器的网络选项卡中向我们分享请求标头和正文。
  • 已编辑问题,请查看
  • @mororo 你有没有找到解决这个问题的办法?我现在面临同样的问题。我有一些输入字段和一个文件。任何帮助表示赞赏!

标签: c# angular http asp.net-core-2.0 content-type


【解决方案1】:

在开发者工具网络选项卡中检查上传请求,它应该具有正确的格式(匹配'Content-Type': 'multipart/form-data'),您也可以尝试删除此标头。

【讨论】:

  • 标头格式正确“multipart/form-data”,我刚刚检查了网络选项卡。
  • 检查它以找出什么?请你说得具体一点好吗?
  • 请求正文,其结构必须与声明的标头匹配
  • 尝试从你的配置中删除Content-Type,可能它是由上传者自动设置的。 ngx-uploader.com 是工作示例。
猜你喜欢
  • 2018-03-18
  • 2015-02-28
  • 2018-03-11
  • 2019-11-03
  • 2013-09-01
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
相关资源
最近更新 更多