-1

我使用 Angular CLI 设置了一个新的 Angular 应用程序,它在http:// localhost :4200 上运行

我允许 CORS 用于 localhost 设置。我确信它在过去有效,但现在我得到了

no-referrer-when-downgrade

铬中的错误消息。

它以某种方式与withCredentials: true 如果我输入 false 那么它工作正常。

如何将 http 调用的凭据传递到同一 localhost 域上的不同端口?

4

2 回答 2

1

您可能会尝试将 .NET Core 应用程序升级到 HTTPS。

no-referrer-when-downgrade消息表明默认引荐来源网址策略已到位,如此处所述

降级时无推荐人(默认)

如果未指定策略或提供的值无效,则这是默认行为。当协议安全级别保持不变(HTTP→HTTP、HTTPS→HTTPS)或提高(HTTP→HTTPS)时,URL 的来源、路径和查询字符串作为引荐来源网址发送,但不会发送到安全性较低的目的地( HTTPS→HTTP)。

只是为了测试,您可能会尝试将开发环境的引用策略设置为不同的值(此代码使用 NWebsec.AspNetCore.Middleware):

if (env.IsDevelopment())
{
    app.UseReferrerPolicy(opts => opts.UnsafeUrl());
}
于 2020-04-12T07:02:34.367 回答
1

事实证明,这不是降级时没有推荐人的问题,而是 CORS 问题。我在 CORS 策略中缺少 AllowCredentials()

    public void ConfigureServices(IServiceCollection services)
    {
        // add cors
        services.AddCors(options =>
        {
            options.AddPolicy(name: "MyCorsPolicy",
                builder => builder.SetIsOriginAllowed(s => s.Contains("localhost"))
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials());
        });
    }
于 2020-04-12T20:12:33.110 回答