来自角度 4 的 Owin 令牌调用 请求的资源上不存在“Access-Control-Allow-Origin”标头
Posted
技术标签:
【中文标题】来自角度 4 的 Owin 令牌调用 请求的资源上不存在“Access-Control-Allow-Origin”标头【英文标题】:Owin token call from angular 4 No 'Access-Control-Allow-Origin' header is present on the requested resource 【发布时间】:2018-05-29 17:59:22 【问题描述】:我正在使用 owin 在 asp.net webapi 中生成 oAuth 令牌,并且我已将 UserCors 添加为 Statrup.cs 配置中的第一行
public void Configuration(IAppBuilder app)
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
ConfigureOAuth(app);
我还在 ConfigureOAuth(app) 中再次添加了它;
我手动尝试在 GrantResourceOwnerCredentials 中添加标题,如下所示
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] "*" );
但是没有用。我不断收到错误消息 No 'Access-Control-Allow-Origin' header is present on the requested resource from angular side.
当我在配置文件中添加标题时,它显示重复。
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT,DELETE" />
</customHeaders>
不知道发生了什么。
【问题讨论】:
检查您发送的标题。我的标题是内容类型,必须将其添加到 customheaders。标头来源和方法必须在请求和响应标头中匹配。 您能否提供有关自定义标头的更多详细信息?我正在使用 'Content-Type': 'application/x-www-form-urlencoded' 【参考方案1】:诀窍是删除 Global.asax 并从启动文件中调用 WebApiConfig.Register。 This link 帮助了我。
【讨论】:
以上是关于来自角度 4 的 Owin 令牌调用 请求的资源上不存在“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章
openid connect owin 如何验证来自 Azure AD 的令牌?