2017-10-11 8 views
0

그러나 나는 다음과 같은 오류를 얻을 :ASP .NET 코어 I가 React.js를 사용하여 드루팔 웹 API로 전화를 걸하려고하는 ASP .NET 핵심 웹 앱에서 비동기 부분보기

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

I 내 Startup.cs에 다음을 추가하려고 시도했습니다.

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

app.UseCors("CorsPolicy"); 

여전히 동일한 오류가 발생합니다.

반응이없는이 서버 측을 처리하는 또 다른 방법이 있는지 궁금합니다. 페이지의 나머지 부분의로드를 지연시키지 않고 Drupal 웹 API에서 반환 된 데이터를로드하는 비동기 부분 뷰를 수행하는 방법이 있습니까?

감사합니다.

답변

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

감사합니다. 여전히 동일한 오류가 발생합니다. http://1.1.1.1/api/news를로드하지 못했습니다. 요청한 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다. 따라서 'http : // localhost : 11111'은 액세스가 허용되지 않습니다. – Primico

+0

앱이 로컬 컴퓨터가 아닌 실제 서버에서 호스팅 될 때이 문제가 발생합니까? 이 내용을 읽는 것도 좋습니다. https://stackoverflow.com/questions/44544425/getting-error-no-access-control-allow-origin-header-is-present-on-the-reques –