【发布时间】:2022-01-21 16:58:40
【问题描述】:
我遇到了 CORS 问题,并且无法调试该问题。我面临的一个问题是我不知道它是前端还是后端问题。我的理解是从启动开始,前端将被启动,在我的例子中是 localhost:44490。后端也将在另一个 localhost(在我的例子中为 localhost:7275)上启动,您可以在前端的 proxy.conf.js 文件中配置代理。所以在我的例子中,点击 localhost:44490/api/task 会重定向到 localhost:7275/api/task。这一切都很好,并且按预期工作。
但是,我在后端发出外部请求(天蓝色广告身份验证)并收到 CORS 错误消息:
从源访问“https://login.microsoftonline.com/hiding-this-part-of-the-url”(重定向自“https://localhost:44490/api/task”)上的 XMLHttpRequest https://localhost:44490' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
这对我来说表明请求实际上是由运行前端 Angular 应用程序的本地主机发出的。这似乎得到了我的后端设置为启用所有 CORS 的事实的进一步支持
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAllOrigins",
builder =>
{
builder.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin();
});
});
.....
app.UseCors("AllowAllOrigins");
所以我只是在寻找有关其实际工作原理的详细信息,因为我完全认为来自后端的请求将来自后端正在运行的本地主机(本地主机:7275),但事实并非如此好像是现实?
我真正能找到的与此相关的唯一支持文档是:
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-6-preview-4/
但这并没有真正解决我的困惑。
【问题讨论】:
标签: .net angular asp.net-core