在 Asp.Net Core 中,如果网站采用了跨域请求,则需要在服务端设置 Access-Control-Allow-Origin 头部才能成功访问。但是,有时候即使已经设置了头部,但仍然会持续出现“无 Access-Control-Allow-Origin Header Present”错误,这时需要进行以下操作:
在 ConfigureServices 方法中添加以下代码:
services.AddCors(options => { options.AddPolicy("AllowAllOrigins", builder => { builder.AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod(); }); });
在 Configure 方法中的 app.UseCors 方法中添加 AllowAnyHeader 属性:
app.UseCors(builder => builder.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin());
在 Configure 方法中的 app.UseCors 方法中添加 AllowAnyMethod 属性:
app.UseCors(builder => builder.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin());
在响应的 Middleware 中添加以下代码:
context.Response.Headers.Add("Access-Control-Allow-Origin", "*"); context.Response.Headers.Add("Access-Control-Allow-Credentials", "true"); context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); context.Response.Headers.Add("Access-Control-Allow-Headers", "Authorization, X-Requested-With, Content-Type");
以上操作可以解决“无 Access-Control-Allow-Origin Header Present”错误的问题。如果还存在错误,则需要检查浏览器的控制台信息,查看具体出错代码并进行排查。