为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

月关宝盒 2023-07-20 09:43:01
第一次尝试使用 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 政策。
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

builder.WithOrigins("http://localhost:8080/")


请注意,指定的 URL 不得包含尾部斜杠 ( /)。请像下面这样修改代码,然后检查它是否工作正常。


services.AddCors(options =>

{

    options.AddPolicy("AllowMyOrigin",

        builder => builder.WithOrigins(

            "http://localhost:8080")

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

        .AllowAnyHeader()

        );

});


查看完整回答
反对 回复 2023-07-20
?
四季花海

TA贡献1811条经验 获得超5个赞

请尝试在里面添加这个

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
}


查看完整回答
反对 回复 2023-07-20
  • 2 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信