मेरे पास मेरे .NETCore+React ऐप में CORS त्रुटि है। इसे हल करने के लिए मैंने अपने बैकएंड में कुछ कॉन्फ़िगरेशन जोड़ने का निर्णय लिया है।

public Program(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddDefaultPolicy(builder => {
            builder.WithOrigins("http://127.0.0.1:3000/");
        });
    });
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseCors(x=> x
        .AllowAnyHeader().AllowAnyMethod().SetIsOriginAllowed(origin=>true).AllowCredentials()
    );
}

मैंने इसे अपनी Program.cs फ़ाइल पर लिखा है। लेकिन मुझे अभी भी CORS त्रुटि है। मैं काँहा गलत था? पुनश्च: मैं .NET 2.1 का उपयोग कर रहा हूँ

-1
user14854238 30 जून 2021, 12:34

2 जवाब

सबसे बढ़िया उत्तर

इसने मेरी समस्या को CORS . के साथ हल कर दिया

ConfigureService विधि में मैंने सभी मूल को अनुमति देने के लिए नीचे दिए गए स्निपेट का उपयोग किया है

public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options=>{
                options.AddPolicy("CorsPolicy",HostBuilder=>HostBuilder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
            });
           }

कॉन्फ़िगर विधि में बस उपयोग करें

 app.UseCors("CorsPolicy");
0
Amit Kotha 30 जून 2021, 09:40

आपको अपने बिल्डर में Any-Methods जोड़ने होंगे

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddDefaultPolicy(builder => {
            builder.AllowAnyHeader()
                   .AllowAnyMethod()
                   .AllowCredentials()
                   .WithOrigins("http://127.0.0.1:3000/");
        });
    });
}

अपनी Configure पद्धति में अब आपको केवल लिखने की आवश्यकता है

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    app.UseCors();
    ...
}

ध्यान रखें, यह केवल निर्दिष्ट मूल से क्रॉस ओरिजिन अनुरोधों की अनुमति देता है, इस मामले में http://127.0.0.1:3000, यदि आप कहीं से भी अनुरोधों की अनुमति देना चाहते हैं, तो आप .WithOrigins(...) को .AllowAnyOrigin() से बदल सकते हैं


यदि आप डिफ़ॉल्ट नीति को ओवरराइड नहीं करना चाहते हैं, तो आप एक नाम भी जोड़ सकते हैं

options.AddDefaultPolicy("MyPolicy", builder => {
    builder.AllowAnyHeader()
         .AllowAnyMethod()
         .AllowCredentials()
         .WithOrigins("http://127.0.0.1:3000/");
});

लेकिन अब आपको लिखना होगा

app.UseCors("MyPolicy");

आप इस नीति को अपने नियंत्रक/कार्यों पर लागू कर सकते हैं

[EnableCors("MyPolicy")]
0
sschwei1 1 जुलाई 2021, 09:42