我使用 Angular CLI 设置了一个新的 Angular 应用程序,它在http:// localhost :4200 上运行
我允许 CORS 用于 localhost 设置。我确信它在过去有效,但现在我得到了
no-referrer-when-downgrade
铬中的错误消息。
它以某种方式与withCredentials: true
如果我输入 false 那么它工作正常。
如何将 http 调用的凭据传递到同一 localhost 域上的不同端口?
您可能会尝试将 .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());
}
事实证明,这不是降级时没有推荐人的问题,而是 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());
});
}