如何在 odata 中启用 CORS?
Posted
技术标签:
【中文标题】如何在 odata 中启用 CORS?【英文标题】:How to enable CORS in odata? 【发布时间】:2020-11-24 12:46:11 【问题描述】:我按照以下步骤解决 CORS 问题。
1.使用 nuget 安装 Microsoft.AspNet.WebApi.Cors。
2.在WebApiConfig.cs中添加以下代码
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
大部分 API 都可以使用。只有 oData API 仍然存在 CORS 问题。
如何解决 oData API 中的 CORS 问题?
编辑:
在 Global.asax 中输入下面的代码后,它就可以工作了。
protected void Application_BeginRequest(object sender, EventArgs e)
if (Context.Request.Path.Contains("odata/") && Context.Request.HttpMethod == "OPTIONS")
Context.Response.AddHeader("Access-Control-Allow-Origin", Context.Request.Headers["Origin"]);
Context.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
Context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST PUT, DELETE, OPTIONS");
Context.Response.AddHeader("Access-Control-Allow-Credentials", "true");
Context.Response.End();
【问题讨论】:
【参考方案1】:看看这个answer,上面说你可以尝试添加:
var cors = new EnableCorsAttribute(
"http://localhost:7122/",
"*",
"*",
"DataServiceVersion, MaxDataServiceVersion"
);
config.EnableCors(cors);
【讨论】:
使用 Fiddler 并发布 HTTP CORS 流量跟踪,也可能在浏览器控制台中发布错误。还要发布您完整的 WebApiConfig 方法,您可以在其中配置各种点点滴滴。以上是关于如何在 odata 中启用 CORS?的主要内容,如果未能解决你的问题,请参考以下文章
如何启用SAP C4C OData Event Notification
如何在 Sharepoint Online 中启用 CORS