第一次尝试使用 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()
);
});
四季花海
TA贡献1811条经验 获得超5个赞
请尝试在里面添加这个
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); }
添加回答
举报
0/150
提交
取消