ASP .NET异步核心部分观点

问题描述:

从ASP .NET核心的Web应用程序,我试图让使用React.js一个Drupal的Web API的调用,但我得到以下错误:ASP .NET异步核心部分观点

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '[my-drupal-api]' is therefore not allowed access.

我已尝试将以下内容添加到我的Startup.cs中:

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

app.UseCors("CorsPolicy"); 

我仍然收到相同的错误。

我很好奇,如果有另一种方式来做这个服务器端,没有反应。有没有办法做一个异步局部视图,将加载从Drupal web api返回的数据,而不会延迟页面的其余部分的负载?

谢谢!

启动可以像这样被配置:

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 { 
    ... 
} 
+0

感谢您的答复。我仍然得到相同的错误:无法加载http://1.1.1.1/api/news:没有'Access-Control-Allow-Origin'标题出现在请求的资源上。原因'http:// localhost:11111'因此不被允许访问。 – Primico

+0

当应用程序托管在真实服务器上而不是本地计算机上时,是否出现此问题?您可能有兴趣阅读此也https://*.com/questions/44544425/getting-error-no-access-control-allow-origin-header-is-present-on-the-reques –