我正在开发一个项目,该项目使用 Angular 作为前端,使用 ASP.NET Core Web API 作为后端。该设置在本地主机环境中完美运行。然而,发布后,我在 Chrome 中调用 API 时遇到了 500 Internal Server Error。 Edge 或 Firefox 中不会出现此问题。
其他详细信息
发布后,什么可能会导致 Chrome 出现 500 错误,尤其是当 API 调用在本地主机上运行时?
任何有关此问题的见解将不胜感激。
更新
这就是我设置 CORS 策略的方式:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
});
var app = builder.Build();
app.UseCors("CorsPolicy");
最有可能
深入挖掘
如果您使用的是 Azure(假设您的后端采用 C# 语言),请使用 Application Insight 日志。 (Rider 有一个扩展,它还可以在本地显示日志,这为我节省了大量时间:https://plugins.jetbrains.com/plugin/13984-application-insights-debug-log-viewer)
在 API 端点内使用 try-catch 块来包装控制器尝试执行的每个操作。
例如:
[HttpGet("/DoSomething")]
public async Task<ActionResult> DoSomething()
{
try
{
//Your code goes here
}
catch(Exception e)
{
return e.message
}
}
此方法与服务结果模式大致相似https://www.milanjovanovic.tech/blog/function-error-handling-in-dotnet-with-the-result-pattern。
我不是最大的粉丝,但是很方便