2017-10-11 1 views
0

partir d'une application Web .NET ASP de base que je suis en train de faire un appel à un api web Drupal en utilisant React.js, mais j'obtiens l'erreur suivante:ASP .NET de base Vue partielle asynchrone

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

I J'ai essayé d'ajouter ce qui suit à mon Startup.cs:

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

app.UseCors("CorsPolicy"); 

et je reçois toujours la même erreur.

Je suis curieux de savoir s'il existe une autre façon de faire ce côté serveur, sans réagir. Est-il possible de faire une vue partielle asynchrone qui va charger les données renvoyées à partir de l'API Web Drupal, sans retarder la charge du reste de la page?

Merci!

Répondre

0

de démarrage peut être configuré comme ceci:

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); 
    } 
} 

Dans vos contrôleurs, vous pouvez marquer avec la constante définie:

[EnableCors(Startup.CorsPolicyName)] 
public class YourController : Controller { 
    ... 
} 
+0

Merci pour la réponse. Je reçois toujours la même erreur: Impossible de charger http://1.1.1.1/api/news: Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée. Origine 'http: // localhost: 11111' n'est donc pas autorisé à accéder. – Primico

+0

Avez-vous ce problème lorsque l'application est hébergée sur un serveur réel plutôt que sur votre machine locale? Vous pourriez être intéressé à lire ceci aussi https://stackoverflow.com/questions/44544425/getting-error-no-access-control-allow-origin-header-is-present-on-the-reques –