从ASP .NET Core Web应用程序我试图使用React.js调用Drupal web api,但是我收到以下错误:
请求时没有'Access-Control-Allow-Origin'标头 资源。因此不允许原点'[my-drupal-api]'访问。
我尝试将以下内容添加到我的Startup.cs中:
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
app.UseCors("CorsPolicy");
我仍然得到同样的错误。
我很好奇是否有另一种方法来做这个服务器端,没有反应。有没有办法做一个异步部分视图,它将加载从Drupal web api返回的数据,而不会延迟页面其余部分的负载?
谢谢!
答案 0 :(得分:0)
启动可以像这样配置:
public class Startup
{
public const string CorsPolicyName = "YourSiteCorsPolicyName";
...
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
...
var corsBuilder = new CorsPolicyBuilder();
corsBuilder.AllowAnyHeader();
corsBuilder.AllowAnyMethod();
corsBuilder.AllowAnyOrigin();
corsBuilder.AllowCredentials();
services.AddCors(
options =>
{
options.AddPolicy(CorsPolicyName, corsBuilder.Build());
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseCors(CorsPolicyName);
}
}
在控制器中,您可以使用定义的常量进行标记:
[EnableCors( Startup.CorsPolicyName )]
public class YourController : Controller {
...
}