CORS 问题:C# API 请求适用于一个域,但不适用于另一个域

时间:2021-04-26 13:42:24

标签: javascript c# api axios cors

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

API 被配置为接受 CORS:

启动ConfigureServices():

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

启动配置():

    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 错误。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

试试这个 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 标头,除非您确定需要它们。

相关问题