C# 如何在odata中启用CORS?

C# 如何在odata中启用CORS?,c#,api,cors,odata,C#,Api,Cors,Odata,我按照以下步骤解决CORS问题 1.使用nuget安装Microsoft.AspNet.WebApi.Cors 2.在WebApiConfig.cs中添加下面的代码 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 大多数API都可以工作。只有ODataAPI仍然存在CORS问题 如何解决ODataAPI中的CORS问题 编辑: 在Global.asax中输入下面的代

我按照以下步骤解决CORS问题

1.使用nuget安装Microsoft.AspNet.WebApi.Cors

2.在WebApiConfig.cs中添加下面的代码

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
大多数API都可以工作。只有ODataAPI仍然存在CORS问题

如何解决ODataAPI中的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();
        }
    }
查看此处,其中显示您可以尝试添加:

var cors = new EnableCorsAttribute(
    "http://localhost:7122/",
    "*",
    "*",
    "DataServiceVersion, MaxDataServiceVersion"
);
config.EnableCors(cors);
查看此处,其中显示您可以尝试添加:

var cors = new EnableCorsAttribute(
    "http://localhost:7122/",
    "*",
    "*",
    "DataServiceVersion, MaxDataServiceVersion"
);
config.EnableCors(cors);

使用Fiddler并发布HTTP CORS通信的跟踪,还可能在浏览器控制台中发布错误。还可以发布完整的WebApiConfig方法,在其中配置各种位和块。使用Fiddler并发布HTTP CORS流量的跟踪,还可以在浏览器控制台中发布错误。同时发布完整的WebApiConfig方法,在其中配置各种位和块。