首页 > 解决方案 > 在 FormData 中上传文件时 HttpHeaders 的 ContentType

问题描述

我有一个调用 .NET Core API 的 Angular 单页应用程序。

默认设置创建 HttpHeaders 以将 jwt 令牌传递给 API,并将 content-type 设置为application/json;字符集=utf-8

为了扩展这个应用程序,我一直在关注“Angular Image Upload Made Easy”(https://www.youtube.com/watch?v=YkvqLNcJz3Y),但是使用我的默认标题,API 中 FormData 中的图像总是无效的。

所以我将 content-type 更改为multipart/form-data,但得到了相同的结果。

经过大量实验,我发现根本不设置内容类型。我仍然可以通过我的 jwt 对用户进行身份验证,并且图像现在可以毫无问题地上传。

那么,在请求选项中省略内容类型是否安全,或者插入“正确”类型会更好,那会是什么?

(在视频中的示例中,添加了请求选项以监控上传进度,但不包含任何标头-reportProgress:true,observe:'events')

标签: angular.net-corehttp-headerscontent-typeimage-upload

解决方案


这应该不是问题,但您仍然需要在 .NET 核心 API 中进行文件类型验证。

在请求中(例如 POST 或 PUT),客户端告诉服务器实际发送的数据类型。

资源


推荐阅读