CORS政策已阻止从原始位置访问“ http:// localhost ...”处的XMLHttpRequest:

时间:2018-11-12 17:02:25

标签: c# angular asp.net-core cors

我有一个.net核心应用,该应用具有一个REST API,该客户端的Angular客户端正在使用REST API,但遇到了CORS问题。

在.net核心中,我已经拥有

app.UseCors(); 

在configure方法中,以及已将响应标头设置为

Access-Control-Allow-Headers *
Access-Control-Allow-Methods *
Access-Control-Allow-Origin *

但仍然在客户端中出现错误(在本地4200端口上运行):

  

从原点“ http://localhost/myAPI/api/Table”到“ http://localhost:4200”的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有HTTP正常状态。

3 个答案:

答案 0 :(得分:1)

预检请求传递:

if (context.Request.Method == "OPTIONS")
    {
     return;
    }

也请阅读:Enable Cross-Origin Requests (CORS) in ASP.NET Core

答案 1 :(得分:0)

我所做的是将cors添加到configure services方法中:

    services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy", builder =>
                {
                    builder.AllowAnyHeader()
                    .AllowAnyMethod()
                    .AllowCredentials();
                });
            });

,然后在Configure方法中

 app.UseCors("CorsPolicy");

答案 2 :(得分:0)

如果使用网络api,则可以使用以下代码:

public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context)
{
    context.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
    return base.TokenEndpointResponse(context);
}