ASP.NET Core 2 - 缺少内容类型边界

Posted

技术标签:

【中文标题】ASP.NET Core 2 - 缺少内容类型边界【英文标题】:ASP.NET Core 2 - Missing content-type boundary 【发布时间】: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 你有没有找到解决这个问题的办法?我现在面临同样的问题。我有一些输入字段和一个文件。任何帮助表示赞赏! 【参考方案1】:

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

【讨论】:

标头格式正确“multipart/form-data”,我刚刚检查了网络选项卡。 查看请求正文,见***.com/questions/16958448/… 检查它以找出什么?请你说得具体一点好吗? 请求正文,其结构必须与声明的标头匹配 尝试从你的配置中删除Content-Type,可能它是由上传者自动设置的。 ngx-uploader.com 是工作示例。

以上是关于ASP.NET Core 2 - 缺少内容类型边界的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net Core 2.0 基本 JWT 缺少 ApplicationCookie

如何将 multipart/form-data 发送到 ASP.NET Core Web API?

InvalidOperationException:不正确的内容类型:ASP.NET Core

Visual Studio 2019 中缺少 ASP.NET Core Web 应用程序

asp.net core 之静态文件目录的操作

在 ASP.NET Core Web API 中一起接收文件和其他表单数据(基于边界的请求解析)