出现此问题的原因是跨域请求被服务器拒绝了。为了解决这个问题,需要在ASP.NET Core API中添加CORS中间件。
通过NuGet包管理器或通过控制台安装Microsoft.AspNetCore.Cors软件包
将以下代码添加到Startup.cs中的ConfigureServices方法中:
services.AddCors();
并在Configure方法中添加以下代码:
app.UseCors(options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
现在我们应该能够从React.js中成功地访问ASP.NET Core API。
以下是完整的Startup.cs文件示例:
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;
namespace MyProjectName { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; }
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddCors(); // 添加CORS中间件
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors(options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); // CORS中间件
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}