ASP .NET Core异步部分视图

时间:2017-10-11 02:04:13

标签: drupal asp.net-core asp.net-core-webapi

从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返回的数据,而不会延迟页面其余部分的负载?

谢谢!

1 个答案:

答案 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 { 
    ...
}