如何解决上传XML文件时遇到415错误Unsupported Media Type的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计939个文字,预计阅读时间需要4分钟。
服务端拒绝接收XML数据,根本原因几乎都是请求头中没有携带正确的+Content-Type+。这并不是文件内容有问题,而是加密标签错误了——HTTP协议依赖这个字段告知后端我发送的是什么。后端据此决定是否接收、用哪个解析器处理数据。
常见错误现象:fetch 或 axios 直接传 File 或 Blob 对象,但没显式设置 Content-Type;或者设成了 text/xml(部分框架不认);又或者用了 FormData 却把 XML 当文本塞进去,导致自动变成 multipart/form-data,而接口只接受纯 XML。
- Spring Boot 默认只接受
application/xml,不认text/xml - ASP.NET Core 也默认要求
application/xml,且需启用 XML 输入格式化器 - Node.js + Express 需要
body-parser的xmlParser中间件,且配置中必须允许该类型
fetch 上传 XML 时怎么设对 Content-Type
别依赖浏览器自动推断,必须手动指定。XML 文件对象(File)本质是 Blob,直接作为 body 发送即可,不需要包装成 FormData。
本文共计939个文字,预计阅读时间需要4分钟。
服务端拒绝接收XML数据,根本原因几乎都是请求头中没有携带正确的+Content-Type+。这并不是文件内容有问题,而是加密标签错误了——HTTP协议依赖这个字段告知后端我发送的是什么。后端据此决定是否接收、用哪个解析器处理数据。
常见错误现象:fetch 或 axios 直接传 File 或 Blob 对象,但没显式设置 Content-Type;或者设成了 text/xml(部分框架不认);又或者用了 FormData 却把 XML 当文本塞进去,导致自动变成 multipart/form-data,而接口只接受纯 XML。
- Spring Boot 默认只接受
application/xml,不认text/xml - ASP.NET Core 也默认要求
application/xml,且需启用 XML 输入格式化器 - Node.js + Express 需要
body-parser的xmlParser中间件,且配置中必须允许该类型
fetch 上传 XML 时怎么设对 Content-Type
别依赖浏览器自动推断,必须手动指定。XML 文件对象(File)本质是 Blob,直接作为 body 发送即可,不需要包装成 FormData。

