ASP.NET Core API 启用 Cors 不起作用

第一次尝试使用 ASP.NET Core 制作 api,我使用的是 ASP.NET Core 3.1。当我尝试发送 GET 请求时遇到此控制台错误:


Access to XMLHttpRequest at 'https://localhost:5001/api/items/1' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 

我在这个网站和其他网站上尝试了很多解决方案,但它们似乎对我不起作用。这是我的 Javascript 方面的内容:


const sendRequest = async function(url) {

    try {

        let response = await axios.get(url);

        return response;

    } catch (error) {

        console.error(error);

        return [];

    }

};

这是我在 Startup.cs 中的内容


public void ConfigureServices(IServiceCollection services)

        {

            services.AddCors(options =>

            {

                options.AddPolicy("AllowMyOrigin",

                builder => builder.WithOrigins(

                    "http://localhost:8080/")

                    .WithMethods("POST", "GET", "PUT")

                    .WithHeaders("*")

                    );

            });

            services.AddDbContext<DBContext>(opt =>

            opt.UseSqlServer(Configuration.GetConnectionString("DatabaseName")));

            services.AddControllers();

            

            

        }


public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

        {

            

            //app.UseAuthentication();

            if (env.IsDevelopment())

            {

                app.UseDeveloperExceptionPage();

            }


            app.UseHttpsRedirection();


            app.UseRouting();

            app.UseCors("AllowMyOrigin");

            //app.UseAuthorization();

            //app.UseAuthentication();

            app.UseEndpoints(endpoints =>

            {

                endpoints.MapControllers();

            });

        }

如果信息太少,我会尽力澄清,但就像我说的,这是我第一次做这样的事情来处理 cors 政策。


月关宝盒
浏览 184回答 2
2回答

www说

builder.WithOrigins("http://localhost:8080/")请注意,指定的 URL 不得包含尾部斜杠 ( /)。请像下面这样修改代码,然后检查它是否工作正常。services.AddCors(options =>{&nbsp; &nbsp; options.AddPolicy("AllowMyOrigin",&nbsp; &nbsp; &nbsp; &nbsp; builder => builder.WithOrigins(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "http://localhost:8080")&nbsp; &nbsp; &nbsp; &nbsp; .WithMethods("POST", "GET", "PUT")&nbsp; &nbsp; &nbsp; &nbsp; .AllowAnyHeader()&nbsp; &nbsp; &nbsp; &nbsp; );});

四季花海

请尝试在里面添加这个public&nbsp;void&nbsp;Configure(IApplicationBuilder&nbsp;app,&nbsp;IWebHostEnvironment&nbsp;env) { app.UseCors(x&nbsp;=>&nbsp;x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript