.NET Core API捕获错误时,CORS标头“ Access-Control-Allow-Origin”丢失

时间:2018-10-16 18:14:23

标签: angular api asp.net-core cors

我有一个.NET Core API,可以在几种情况下捕获错误。其中之一是呼叫不返回任何数据。当没有数据返回时,会收到一条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 App中进行的错误处理,我假定我应该在API中接收到从catch返回的错误响应,但我却收到了这个CORS错误和未知响应。

这里是与邮递员完全相同的电话,以及随后的回复:

enter image description here

1 个答案:

答案 0 :(得分:1)

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