c# ASP.NET Core2.2利用中间件支持跨域请求

本文介绍了一种在ASP.NET Core中使用自定义中间件实现跨域资源共享(CORS)的方法,详细展示了如何创建并应用CORS中间件以允许特定源进行跨域请求。

1、public void Configure(IApplicationBuilder app, IHostingEnvironment env)方法里面

不要加上:app.UseCors();

 

2、上面方法加上:


app.UseMiddleware<CorsMiddleware>();

3、中间代码如下:


public class CorsMiddleware
{
    private readonly RequestDelegate next;

    public CorsMiddleware(RequestDelegate next)
    {
        this.next = next;
    }
    public async Task Invoke(HttpContext context)
    {
        if (context.Request.Headers.ContainsKey(CorsConstants.Origin))
        {
            context.Response.Headers.Add("Access-Control-Allow-Origin", context.Request.Headers["Origin"]);
            context.Response.Headers.Add("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS,HEAD,PATCH");
            context.Response.Headers.Add("Access-Control-Allow-Headers", context.Request.Headers["Access-Control-Request-Headers"]);
            context.Response.Headers.Add("Access-Control-Allow-Credentials", "true");

            if (context.Request.Method.Equals("OPTIONS"))
            {
                context.Response.StatusCode = StatusCodes.Status200OK;
                return;
            }
        }

        await next(context);
    }
}

转载于:https://www.cnblogs.com/94cool/p/10535420.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值