// 指定跨域
c.AddPolicy("CorsApi"),
policy =>
{
policy
.WithOrigins("http://a.domain.com")
.AllowAnyHeader()//Ensures that the policy allows any header.
.AllowAnyMethod();
});
//允许任意跨域请求
c.AddPolicy("CorsApi"),
policy =>
{
policy
.SetIsOriginAllowed((host) => true)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
这种方法一开始就试过了,不行
@kingboy8808:
location /api { # 这是第一个 让所有api 请求都在这里进行
# 解决 跨域问题
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
# rewrite ^.+Api/?(.*)$ /$1 break;
proxy_pass http://CgrainApi; #反向代理指向地址
}
我就是这样配置的
接口
前端
换个思路呢?api的域名改为 a.domain.com/api/ 这样既能省下一个https的证书,也没跨域。。。
.net core自己用中间件处理即可
– Mr--WANG 3年前先添加(注册)中间价 service.AddPolicy()
然后再使用即可
app.userCors()
网上一搜 处理方案一大推