批处理请求必须具有“Content-Type”标头/“multipart/mixed”作为媒体类型
Posted
技术标签:
【中文标题】批处理请求必须具有“Content-Type”标头/“multipart/mixed”作为媒体类型【英文标题】:The batch request must have a "Content-Type" header / "multipart/mixed" as the media type 【发布时间】:2019-07-13 01:29:57 【问题描述】:在我的 WEB API OData v4 上添加 DefaultODataBatchHandler 后出现错误。
DefaultODataBatchHandler defaultODataBatchHandler = new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer);
在浏览器中出现此错误:批处理请求必须具有“Content-Type”标头。 在 POSTMan 中,我遇到了这个错误:批处理请求必须将“multipart/mixed”作为媒体类型。
如果我没有把代码放在上面。访问 $batch
时出现此错误"Message": "No HTTP resource was found that matches the request URI 'http://localhost:2288/$batch'.",
"MessageDetail": "No route providing a controller name was found to match request URI 'http://localhost:2288/$batch'"
RouteConfig.cs
public class RouteConfig
public static void RegisterRoutes(RouteCollection routes)
routes.IgnoreRoute("resource.axd/*pathInfo");
routes.MapRoute(
name: "Default",
url: "controller/action/id",
defaults: new controller = "Home", action = "Index", id = UrlParameter.Optional
);
【问题讨论】:
您是否将路由添加到 RoutesConfig 中? 我更新了我的帖子并包含了 routeconfig。 【参考方案1】:现在明白了。
我只需要添加 CORS
var cors = new EnableCorsAttribute(
"*",
"*",
"*",
"*"
);
config.EnableCors(cors);
并为暴露的标头添加通配符。
【讨论】:
以上是关于批处理请求必须具有“Content-Type”标头/“multipart/mixed”作为媒体类型的主要内容,如果未能解决你的问题,请参考以下文章
Next.js 动态 api 页面无法响应带有 Content-Type=application/json 标头的 post 请求
如何为 HttpClient 请求设置 Content-Type 标头?
带有自定义标头的 C# HttpClient POST 请求发送不正确的 Content-Type 标头字段
Jersey 客户端错误 - 无法解析无效的 Content-Type 标头(需要解决方法)
在 Spring Reactive 中使用 application.properties 在请求标头中设置 Content-type