我遇到了 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 错误。
我该如何解决这个问题?
答案 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 标头,除非您确定需要它们。