【问题标题】:Enable CORS on Web API 2 /Token endpoint在 Web API 2 /Token 端点上启用 CORS
【发布时间】:2019-01-09 23:14:14
【问题描述】:

在这里遇到了一些 CORS 问题。你可能知道那个...

从源访问“http://localhost:59365/Token”处的 XMLHttpRequest 'http://localhost:4200' 已被 CORS 策略阻止:响应 预检请求未通过访问控制检查:它没有 HTTP 正常状态。

结果我需要在 Web API 项目上启用 CORS,所以我运行 Install-Package Microsoft.AspNet.WebApi.Cors 并将 config.EnableCors() 添加到 WebApiConfig.cs

这并没有帮助,因为有问题的 /Token 端点出于所有意图和目的都内置于 OAuth 中,因此我无法触摸该代码来添加 [EnableCors] 注释,这显然是完成这项工作所必需的:

OAuthOptions = new OAuthAuthorizationServerOptions {
     TokenEndpointPath = new PathString("/Token"),
     ... 
}

所以我的最后一个想法(我现在不打算尝试,因为现在是凌晨 1 点,明天我必须工作)是将登录转移到一个控制器,我可以操纵它并将其用作排序我的应用程序和 /Token 之间的“中间人”虽然我不知道这个中间人的代码可能是什么样子......

我认为有一种更有效的方法可以解决这个我不知道的问题,我希望可能比我更聪明的你能乐于分享。

底线是,如果我不能发布到 /Token,我就不能向服务验证我的应用程序,并且这两个软件都是无用的。我不明白为什么会这样,或者我应该如何解决这个问题......

【问题讨论】:

  • 我正在寻找相同的..您找到任何解决方案了吗?
  • 恐怕不行;我什至不记得这是哪个项目。对不起,我帮不上忙!

标签: cors asp.net-web-api2


【解决方案1】:

从 WebApiConfig 文件中删除所有基于 CORS 的代码,并将以下代码添加到 App_Start 文件夹中的启动文件中

   public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-08
    • 2014-10-20
    • 2017-09-25
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2015-10-16
    • 2018-10-16
    相关资源
    最近更新 更多