对于 PUT 和 DELETE 请求,我得到了低于 CORS 错误,GET 和 POST 请求工作正常:
Access to XMLHttpRequest at 'https://localhost:444/api/...' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
关于我的应用程序的背景:前端在 React(next.js) 中,后端在 .NET 5 中。在后端项目中,我已经设置了 CORS 策略以允许任何标头、方法和特定来源,但现在仍然有效。当我在 IIS Express 上运行 API 项目时,它可以工作,但是当我将它部署到 IIS 时,它失败并出现上述错误。
以下是 .NET 5 项目中的 CORS 策略:
-- public void ConfigureServices(IServiceCollection services)
services.AddCors(options =>
{
options.AddDefaultPolicy(
builder =>
{
builder
.AllowAnyHeader()
.AllowAnyMethod()
.WithOrigins("http://localhost:3000");
});
-- public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
app.UseRouting();
app.UseCors();
app.UseAuthorization();
这是 PUT 的 OPTIONS 请求:
**General:**
Request Method: OPTIONS
Status Code: 204
Remote Address: [::1]:444
Referrer Policy: strict-origin-when-cross-origin
**Response Headers:**
access-control-allow-headers: content-type
access-control-allow-methods: PUT
access-control-allow-origin: *
date: Fri, 24 Sep 2021 01:49:11 GMT
server: Microsoft-IIS/10.0
x-powered-by: ASP.NET
任何想法?