Reactjs 服务器上启用的CORS仍在接收标头错误

Reactjs 服务器上启用的CORS仍在接收标头错误,reactjs,google-chrome,.net-core,asp.net-core-webapi,Reactjs,Google Chrome,.net Core,Asp.net Core Webapi,这似乎是一个非常流行的问题,但我一直未能找到一个有效的解决方案 简而言之,仅在Chrome中,我在发出put、patch、delete或options请求时收到以下错误 来自源“”已被CORS策略阻止:飞行前响应中的访问控制允许方法不允许使用方法修补程序 该调用在IE和Firefox中运行良好。通过邮递员和招摇也成功地工作 在我的API中,我有 public IServiceProvider ConfigureServices(IServiceCollection services)

这似乎是一个非常流行的问题,但我一直未能找到一个有效的解决方案

简而言之,仅在Chrome中,我在发出put、patch、delete或options请求时收到以下错误

来自源“”已被CORS策略阻止:飞行前响应中的访问控制允许方法不允许使用方法修补程序

该调用在IE和Firefox中运行良好。通过邮递员和招摇也成功地工作

在我的API中,我有

     public IServiceProvider ConfigureServices(IServiceCollection services)
    {   
         services.AddCors();
         return configureMvcServices.ExecuteConfig();
    }


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
            app.UseCors(options => options.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
            var configureApp = new ConfigureApp(app, env);
            configureApp.DoConfig();
}
到目前为止,我也试过了

  • 手动设置标题
  • 在服务函数中创建策略,并在使用所述策略名称的控制器上使用allowcors属性
  • 根据另一个答案创建自定义中间件,我似乎找不到设置标题和选项的答案
我还尝试手动设置标题以接受所有内容,但没有任何效果。有一个答案,我似乎无法找到再次创建中间件,但这并没有改变结果。我也有

我不知道如何解决这个问题

下面是进行调用的客户端代码

 return fetch(url + path, {
        method,
        headers:{
            'Accept': 'application/json',
            'crossDomain':'true',
            'Content-Type': 'application/json',
            'Pragma': 'no-cache',
            'Access-Control-Allow-Methods': '*'
        },
        body: JSON.stringify(data)
    })
我不知道我可以在客户端设置什么标题,试图更改为纯文本,但如果有任何标题可以解决它,也没有效果,我已经用尽了我的谷歌fu

另外,GET和POST工作正常


任何帮助都将不胜感激。

好吧,我无法解释为什么,但团队中的另一位开发人员设法解决了这个问题

简而言之,Chrome似乎不喜欢
AllowAnyMethod()

你必须详细说明每种方法

  app.UseCors(options =>
               options
               .AllowAnyOrigin()
               .AllowAnyHeader()
               .WithMethods("POST", "GET", "PATCH", "PUT", "DELETE")
           );

您是否使用postmanyep尝试过此操作?chrome有一个问题您不需要在请求中使用
'Access-Control-Allow-Methods':“*”
。这是服务器发送的响应头。
crossDomain
也是你自己的标题吗?@SimplyGed哦,我知道我在尝试一切,至于crossDomain,那只是我在这类问题的另一个答案上看到的东西,所以我正在尝试