前端处理跨越一般都是伪跨越,最近在使用Vue3构建项目,试了一下网上的方法基本都是在前端处理跨越,配置起来相对复杂,如果是有多个项目都需要调用api的话,每个项目都要配置,于是还是决定在后端解决跨越问题;
.以前.net处理跨越问题一般都是在iis上配置Http响应标头;一般在响应标头中配置如下几个参数就能解决大部分跨越问题;
Access-Control-Allow-Origin :*
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers:Content-Type
但.netcore支持跨平台,后端项目需要部署在不同版本的操作系统上,仅windows拥有iis,仅配置iis明显不能满足,因此需要使用其他的方法
在Program.cs文件中加入以下代码(通用版,可根据需求修改参数)
var MyAllowSpecificOrigins = "项目名称";
//跨越设置
builder.Services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
policy =>
{
policy
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
//处理跨域问题
app.UseCors(MyAllowSpecificOrigins);
配置完成后重新编辑项目,发布即可解决跨越问题