在Owin中启用CORS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Owin中启用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似乎不起作用,我得到“No'Access-Control-Allow-Origin'标头出现在请求的资源上”。

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

答案

你需要做两件事

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
       var cors = new EnableCorsAttribute("*", "*", "*");
        config.EnableCors(cors);
       ........

(你已经完成了这个)

    public void ConfigureAuth(IAppBuilder app)
    {
         app.UseCors(CorsOptions.AllowAll);
    ........
另一答案

我知道这是旧的,但你可以检查的另一件事是你的web.config用这两个应用程序设置调用owin启动:

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

以上是关于在Owin中启用CORS的主要内容,如果未能解决你的问题,请参考以下文章

Owin Self Host WebApi2 上的 CORS 错误

WebApi 上的 AngularJS 和 OWIN 身份验证

Web API 中的 OWIN CORS 问题

为 ASP API 令牌请求启用 CORS

在 OWIN 中将 CORS 添加到 UseFileServer

Microsoft Owin Cors允许所有不能在Chrome for Web API中使用