【问题标题】:Cors doesnt solve cross origin requestsCors 不解决跨源请求
【发布时间】:2015-06-14 23:28:05
【问题描述】:

我正在尝试使用 ASP.NET MVC Web API 构建一个 Angular 应用程序。

当我向我的网络服务器 (localhost) 发出 $resource 请求时,我得到了

XMLHttpRequest 无法加载 http://localhost:59636/api/studios。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:44060' 不允许访问。响应的 HTTP 状态代码为 401。

我读到安装 Cors 可以解决这个问题。但它没有。我已经尝试过启用 cors

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

以及使用属性

[EnableCorsAttribute("*", "*", "*")]

它正在 IE 上运行

【问题讨论】:

    标签: asp.net angularjs webserver


    【解决方案1】:

    在您的 WebApiConfig.cs 文件中,您应该有:

            config.EnableCors();
    

    在您的 ApplicationOAuthProvider.cs 中,在 GrantResourceOwnerCredentials() 中:

    context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin",
                    new[] { "http://localhost:44060" });
    

    在控制器上:

    [EnableCorsAttribute("http://localhost:44060", "*", "*")]
    

    【讨论】:

    • 仍然无法正常工作。我已注释掉 //config.SuppressDefaultHostAuthentication(); //config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); 并从控制器中删除了授权属性
    猜你喜欢
    • 2016-11-23
    • 2015-04-17
    • 2018-07-28
    • 1970-01-01
    • 2016-12-11
    • 2021-11-29
    • 2014-09-06
    • 2019-08-07
    • 2016-05-05
    相关资源
    最近更新 更多