.net 解决跨域问题

175 阅读1分钟

概念

跨域问题(Cross-0rigin Resource Sharing,简称CORS)是由浏览器的同源策略(Same-0rigin Policy)引起的。同源策略是一种安全机制,限制了一个网页从不同源加载的资源与当前页面进行交互。同源是指两个页面的协议、域名和端口号都相同。

当一个网页尝试从不同的域名、端口或协议加载资源时,浏览器会根据同源策略阻止这种跨域资源访问。例如,如果一个网页在域名A上加载的JavaScript代码试图向域名B发送Ajax请求,浏览器会阻止这个跨域请求。

发送跨域时,请求是经过了后端,只是后端返回数据之后,被浏览器拦截,不给客户端

配置

通常情况下,服务器端需要设置以下HTTP头部启用CORS:

  1. ACCess-Control-Allow-Origin:指定允许访问资源的域名,可以是具体的域名或通配符(如)表允许所有域名访问。
  2. Access-Control-Allow-Methods:指定允许的HTTP请求方法,如GET、POST等。
  3. Access-Control-Allow-Headers:指定允许的自定义HTTP请求头部。
  4. Access-Control-Allow-Credentials:指定是否允许发送凭据(如CookieHTTP认证)
// 添加跨域策略
builder.Services.AddCors(option =>
{
    option.AddPolicy("CorsPolicy", opt => opt
        .AllowAnyOrigin()
        .AllowAnyHeader()
        .AllowAnyMethod());
});
// 使用跨域策略
app.UseCors("CorsPolicy");

image.png

参考

.net core 允许跨域-罗分明网络博客 (luofenming.com)