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 {
...
}
感谢您的答复。我仍然得到相同的错误:无法加载http://1.1.1.1/api/news:没有'Access-Control-Allow-Origin'标题出现在请求的资源上。原因'http:// localhost:11111'因此不被允许访问。 – Primico
当应用程序托管在真实服务器上而不是本地计算机上时,是否出现此问题?您可能有兴趣阅读此也https://*.com/questions/44544425/getting-error-no-access-control-allow-origin-header-is-present-on-the-reques –