我正在测试来自不同域的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(选项)配置允许转机前请求?
非常感谢
答案 0 :(得分:0)
当我发现文档使用
时,此问题已得到解决Microsoft.Owin.Cors
我正在使用套餐
Microsoft.AspNet.WebApi.Cors