雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

.NET Core设置允许跨域

2024-09-30 9

.NET Core 允许开发人员在 Web API 中设置跨域资源共享 (CORS)。CORS 是一种标准,允许浏览器从不同的域访问资源。

在 .NET Core 中设置 CORS 有两种方法:

使用 CorsPolicy 类 使用 Cors 属性

使用 CorsPolicy 类

CorsPolicy 类允许开发人员自定义 CORS 策略。要使用 CorsPolicy 类,请创建一个 CorsPolicy 实例并设置所需的属性。

以下代码演示了如何使用 CorsPolicy 类设置 CORS 策略:

using Microsoft.AspNetCore.Cors;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Add a CORS policy
        services.AddCors(options =>
        {
            options.AddPolicy("MyPolicy",
                builder =>
                {
                    builder.AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader();
                });
        });
    }
}

在上述代码中,我们创建了一个名为 MyPolicy 的 CORS 策略。该策略允许来自任何域的任何请求方法和任何请求头。

使用 Cors 属性

Cors 属性允许开发人员在控制器或接口上快速设置 CORS 策略。要使用 Cors 属性,请将其添加到控制器或接口上。

以下代码演示了如何使用 Cors 属性设置 CORS 策略:

[Route("api/[controller]")]
[ApiController]
[Cors("MyPolicy")]
public class MyController : ControllerBase
{
}

在上述代码中,我们使用 Cors 属性设置了 MyPolicy 策略。

跨域请求的响应头

当请求被允许时,CORS 会添加以下响应头:

Access-Control-Allow-Origin:允许访问的域 Access-Control-Allow-Methods:允许的请求方法 Access-Control-Allow-Headers:允许的请求头 Access-Control-Allow-Credentials:是否允许在请求中使用凭据

跨域请求的预检请求

浏览器在发送跨域请求之前,会先发送一个预检请求。预检请求用于检查服务器是否允许跨域请求。

当预检请求被允许时,CORS 会添加以下响应头:

Access-Control-Allow-Origin:允许访问的域 Access-Control-Allow-Methods:允许的请求方法 Access-Control-Allow-Headers:允许的请求头

.NET Core 中的 CORS 功能允许开发人员在 Web API 中设置跨域资源共享。CORS 可以帮助开发人员在不同域之间安全地共享资源。

更新于:3天前
赞一波!

文章评论

评论问答