CORS 策略已阻止从源"https://localhost:44315"获取"https://localhost:5099/api/catalog-items"的访问:



我正在使用Visual Studio 2022学习Microsoft的.Net 6参考应用程序EShopOnWeb。我没有更改原始安装的任何内容。我能够启动PublicAPI和Web项目。我在使用BlazorAdmin应用程序时遇到困难。特别是,在我以管理员身份登录后,我将无法查看"管理产品目录"页面。它是空白的。在开发者工具中查看网络流量时,它给了我7个错误。

访问"获取https://localhost:5099/api/catalog-项目"来自来源"https://localhost:44315'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在"access control Allow Origin"标头。如果一个不透明的响应满足了您的需求,请将请求的模式设置为"无cors",以获取禁用cors的资源。其中之一是:

这是参考应用程序。我没有更改代码。有人能给我指个正确的方向吗?

感谢

这是Api CORS策略上的CORS错误,它拒绝来自不同来源的请求。您可以通过更新CORS策略来允许Program.cs:中的任何来源

builder.Services.AddCors(options =>
{
options.AddPolicy(name: CORS_POLICY,
builder =>
{
builder.WithOrigins(baseUrlConfig.WebBase.Replace("host.docker.internal", "localhost").TrimEnd('/'));
builder.AllowAnyMethod();
builder.AllowAnyHeader();
builder.AllowAnyOrigin();//Add this line
});
});

为了将来参考,我通过将此包安装到PublicAPI项目来解决此问题:

Microsoft.AspNetCore.Cors

在不做任何其他更改的情况下,我可以在https://localhost:44315/Admin上查看页面,不会出现任何错误。我可以看到一个产品网格,而不是一个空页面。

Install-Package Microsoft.AspNetCore.Cors

相关内容

  • 没有找到相关文章

最新更新