【问题标题】:CORS Issue: C# API requests work for one domain, but not to the otherCORS 问题:C# API 请求适用于一个域,但不适用于另一个域
【发布时间】:2021-07-19 21:30:34
【问题描述】:

我遇到了 CORS 问题。我有一个 Internet IIS 服务器,其中两个域共享相同的代码(多租户应用程序)和一个用于 API 的域。

API 配置为接受 CORS:

启动ConfigureServices():

    services.AddCors(options =>
    options.AddDefaultPolicy(builder => builder.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin().SetIsOriginAllowed(origin => true).AllowCredentials()));
services.AddMvc();

启动Configure():

    app.UseCors(options =>
    options.AllowAnyMethod()
        .AllowAnyHeader()
        .SetIsOriginAllowed(origin => true)
        .AllowCredentials()
);

Javascript 请求:

axios.post(apiurl + '/api/Usuario/primeiroacesso', '"' + this.email + '"',
{
    headers:
    {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, PATCH, DELETE',
        'Access-Control-Allow-Headers': 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers',
        'Content-Type': 'application/json',
        hash: _hc
    }
})
.then(res => {
    console.log(res);
    if (res.status == 200) {
        alert('Verifique sua conta de email');
    } else {
        alert("O email informado não foi encontrado");
    }
})

此代码适用于 Domain1 请求,但是当我在 Domain2 上执行相同请求时,我收到了 CORS 错误。

我该如何解决这个问题?

【问题讨论】:

    标签: c# api .net-core axios cors


    【解决方案1】:

    试试这个 API 语法

    public void ConfigureServices(IServiceCollection services)
            {
                services.AddCors(o => o.AddPolicy("AllowAnyOrigins", builder =>
                {
                    builder.AllowAnyOrigin()
                           .AllowAnyMethod()
                           .AllowAnyHeader();
                }));
                
            }
    
            
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                
                 ......
                app.UseCors("AllowAnyOrigins");
                .....
    }     
    

    并从 javascript 中删除所有 Cors 标头,除非您确定需要它们。

    【讨论】:

      猜你喜欢
      • 2018-08-10
      • 2019-04-27
      • 2021-10-04
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      相关资源
      最近更新 更多