微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

除非我清理浏览器,否则https重定向中的CORS策略已阻止对XMLHttpRequest的访问

如何解决除非我清理浏览器,否则https重定向中的CORS策略已阻止对XMLHttpRequest的访问

我有一个angular + .net core 2.1应用程序。仅使用http时,效果很好,现在我想重定向到https。 但是,每次启动应用程序登录时出现错误

通过以下网址访问位于https://appgee.mycompany.com:5001/的XMLHttpRequest 原产地“ https://app.mysite.com:5001”已被CORS政策阻止: “ Access-Control-Allow-Origin”标头具有一个值 “ https://app.mysite.com:5001”不等于提供的来源

如果我清除浏览器数据,则错误消失了。但这给用户带来不便。 我在.net核心中的代码

services.AddCors(o => o.AddPolicy("CorsPolicy",builder => {
                builder
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials()
                .AllowAnyOrigin();
            })); 




app.UseHttpsRedirection();

我使用apigee进行身份验证,在角度上,我将apigee的api请求的请求标头设置为(在拦截器中):

SetHeaders: {
   Authorization: 'Bearer $ {token.access_token}','Access-Control-Allow-Origin': '*',

您看到我已经在正面和背面都允许原点了。但是为什么会这样呢?

更新:

我拥有的顶点目标端点

<HTTPTargetConnection>
     <Properties/>
     <URL>http://app.mysite.com:5001</URL>
</HTTPTargetConnection>

解决方法

app.UseCors("CorsPolicy");

根据https://weblog.west-wind.com/posts/2016/sep/26/aspnet-core-and-cors-gotchas

的讨论

@Kristian-中间件 order 绝对重要,尽管您可能对,它具有重要的顺序是在Configure()方法中,而不是ConfigureServices()中。为了安全起见,请确保在两个地方的MVC之前都具有CORS定义。现在检查以查看哪一个真正重要,或者根本不重要。一些参考文献明确提到了这一点。

所以我将UseCors放在方法的第一行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。