Angular 当.NET Core API捕捉到错误时,CORS标头“访问控制允许来源”丢失

Angular 当.NET Core API捕捉到错误时,CORS标头“访问控制允许来源”丢失,angular,api,asp.net-core,cors,Angular,Api,Asp.net Core,Cors,我有一个.NETCoreAPI,它可以捕获多个场景中的错误。其中之一是调用不返回任何数据。当没有返回数据时,接收到200ok,错误消息为未返回数据 在我的API中,我在启动时配置了CORS: app.UseCors(builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(

我有一个.NETCoreAPI,它可以捕获多个场景中的错误。其中之一是调用不返回任何数据。当没有返回数据时,接收到200ok,错误消息为未返回数据

在我的API中,我在启动时配置了CORS:

app.UseCors(builder => builder
            .AllowAnyOrigin()
            .AllowAnyMethod()
            .AllowAnyHeader()
            .AllowCredentials());
我已经在MVC之前注册了:

services.AddCors();

services.AddMvc();
当请求在后端API上成功时,这非常有效,但是如果我发现错误。。。就像没有从服务器返回任何数据一样,我在控制台中收到:

Client Side Error:  Object { headers: {…}, status: 0, statusText: "Unknown Error", url: null, ok: false, name: "HttpErrorResponse", message: "Http failure response for (unknown url): 0 Unknown Error", error: error }

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:52706/api/peoplecategories. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).[Learn More]
使用Angular应用程序中的错误处理,我假设我应该在API中接收从catch返回的错误响应,但是我得到了这个CORS错误和未知响应

以下是《邮差》中的同一个电话,以及随后的回复:


您必须从后端返回有效的JSON响应。再次验证了您的回答。

这似乎是问题所在,太棒了。我正在使用错误处理中间件,如果我发现一个错误,它会以纯文本的形式发送响应。我认为纠正此错误的唯一方法是将错误消息字符串作为JSON对象返回,对吗?是的,如果API返回带有200或201代码的响应,那么它必须是JSON格式的。注意:我说的是Angular,默认情况下Angular期望JSON格式的成功消息。因此,我尝试用200ok响应返回JSON对象,但没有成功。我做了一些额外的故障排除,让我的中间件返回一个包含JSON对象和纯文本消息的400badrequest,这也产生了与以前相同的结果。我仍然看不到我返回的消息。