identity Server - 为承载选项配置CORS

时间:2016-07-26 09:51:28

标签: asp.net-web-api cors identityserver3

我正在测试来自不同域的jquery ajax对API服务器的调用。不幸的是我收到了OPTIONS错误。这是我的请求代码:

$.ajax({
    url: "https://localhost:44356/api/Default/",
    headers: {
        "Authorization": "Bearer " + user.access_token
    },
    success: function (res) {
        logAjaxResult(res);
    },
    error: function() {
        logAjaxResult('Error');
    }
}))

哪个给出了

XMLHttpRequest cannot load https://localhost:44356/api/Default/. Response for preflight has invalid HTTP status code 405.

通常这是一个简单的解决方法 - 我安装Microsoft.AspNet.WebApi.Cors,设置提供程序并始终允许OPTIONS。我可以看到我通常会在Identity Server框中执行此操作,因为您可以注册CorsProvider。我的问题是在API框中我使用IdentityServerBearerTokenAuthenticationOptions,我看不到CORs选项。当我尝试设置WebAPI.cors提供程序时,虽然我收到错误,说服务器上设置了多个来源以允许。这告诉我(如果我错了,请纠正我)WebApi框已经以某种方式从我的身份服务器框中获得了CORs设置,该设置被注册为其权限。这是正确的吗?

如何使用app.UseIdentityServerBearerTokenAuthentication(选项)配置允许转机前请求?

非常感谢

1 个答案:

答案 0 :(得分:0)

当我发现文档使用

时,此问题已得到解决
Microsoft.Owin.Cors

我正在使用套餐

Microsoft.AspNet.WebApi.Cors