我有一个.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正常状态。
答案 0 :(得分:1)
预检请求传递:
if (context.Request.Method == "OPTIONS")
{
return;
}
答案 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);
}