在Owin中启用CORS

在Owin中启用CORS,cors,owin,nancy,Cors,Owin,Nancy,我一直在尝试在运行在OWIN上的ASP.Net应用程序中启用CORS 这是我的密码: public class Startup { public void Configuration(IAppBuilder app) { //Enable CORS //Use JWTOwinAuth middleware //Use Nancy framework app .UseCors(Cors

我一直在尝试在运行在OWIN上的ASP.Net应用程序中启用CORS

这是我的密码:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        //Enable CORS
        //Use JWTOwinAuth middleware
        //Use Nancy framework
        app     
            .UseCors(CorsOptions.AllowAll)                  
            .Use(typeof(JwtOwinAuth))
            .UseNancy();

    }
}
CorsOptions.AllowAll似乎不起作用,我得到“请求的资源上不存在‘访问控制允许源’头”


我已经尝试了网络上的所有建议,但解决方案仍然无效。

您需要做两件事

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
       var cors = new EnableCorsAttribute("*", "*", "*");
        config.EnableCors(cors);
       ........
(你做的这一件)


我知道这很旧,但您可以检查的另一件事是,您的web.config正在使用以下2个应用程序设置调用owin启动:

<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:AppStartup" value="MyCompany.MyProduct.MyProject.Startup, MyCompany.MyProduct.MyProject" />


对于web api,是否要使用cors?是的,我正在appharbor中托管此web服务,并且一个“前端”web应用程序正在连接到此“web服务”。但是,前端未遇到访问控制允许源。我的第一个实现是使用WebApp.Start(url),这是一个控制台应用程序,它运行良好。我不确定我的实现是否正确,但我尝试了这个建议。添加了WebApiConfig类,但仍然遇到“否”访问控制允许源
publicstaticvoidregister(HttpConfiguration-config){var cors=newenableCorsattribute(“*”,“*”,“*”,“*”);config.EnableCors(cors);}
最后,我能够使它工作。我的aspnet程序似乎没有调用我的WebApiConfig类的实现。所以我添加了Global.asax并从中调用了WebApiConfig。在Global.asax中,
公共类Global:System.Web.HttpApplication{protectedvoid Application_Start(objectsender,EventArgs e){GlobalConfiguration.Configure(WebApiConfig.Register);}}
<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:AppStartup" value="MyCompany.MyProduct.MyProject.Startup, MyCompany.MyProduct.MyProject" />