zoukankan      html  css  js  c++  java
  • .Net Core 跨域

    Startup.cs

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
      app.UseCorsMiddleware();
    //其它代码...... }
    CorsMiddleware.cs
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Http;
    
    namespace VipSoft.Web
    {
        public class CorsMiddleware
        {
            private readonly RequestDelegate _next;
    
            public CorsMiddleware(RequestDelegate next)
            {
                _next = next;
            }
            public Task Invoke(HttpContext httpContext)
            {
    
                if (httpContext.Request.Method == "OPTIONS")
                {
                    httpContext.Response.Headers.Add("Access-Control-Allow-Origin", httpContext.Request.Headers["Origin"]);
                    httpContext.Response.Headers.Add("Access-Control-Allow-Headers", httpContext.Request.Headers["Access-Control-Request-Headers"]);
                    httpContext.Response.Headers.Add("Access-Control-Allow-Methods", httpContext.Request.Headers["Access-Control-Request-Method"]);
                    httpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
                    httpContext.Response.Headers.Add("Access-Control-Max-Age", "86400");//缓存一天
                    httpContext.Response.StatusCode = 204; #【用 AspNetCoreRateLimit 的时候,这行代码要去掉,否则会报:StatusCode cannot be set because the response has already started.】
                    return httpContext.Response.WriteAsync("");
                }
                if (httpContext.Request.Headers["Origin"] != "")
                {
                    httpContext.Response.Headers.Add("Access-Control-Allow-Origin", httpContext.Request.Headers["Origin"]);
                }
    
                httpContext.Response.Headers.Add("Access-Control-Allow-Headers", httpContext.Request.Headers["Access-Control-Request-Headers"]);
                httpContext.Response.Headers.Add("Access-Control-Allow-Methods", httpContext.Request.Headers["Access-Control-Request-Method"]);
                httpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
                httpContext.Response.Headers.Add("Access-Control-Max-Age", "86400");//缓存一天
                return _next.Invoke(httpContext);
            }
        }
        // Extension method used to add the middleware to the HTTP request pipeline.
        public static class CorsMiddlewareExtensions
        {
            public static IApplicationBuilder UseCorsMiddleware(this IApplicationBuilder builder)
            {
                return builder.UseMiddleware<CorsMiddleware>();
            }
        }
    }
  • 相关阅读:
    Oracle 用 sqlprompt 修改 sqlplus 提示符
    Oracle cursor pin S wait on X 等待事件 说明
    Oracle 利用 rowid 提升 update 性能
    Oracle 从缓存里面查找真实的执行计划
    Linux 进程状态 说明
    Oracle 用户 对 表空间 配额(quota ) 说明
    Upon startup of Linux database get ORA27102: out of memory LinuxX86_64 Error: 28: No space left on device
    异常宕机 Ora00600 [Kccpb_sanity_check_2] 错误解决方法
    Oracle ORA04031 错误 说明
    Oracle Shared pool 详解
  • 原文地址:https://www.cnblogs.com/vipsoft/p/12878559.html
Copyright © 2011-2022 走看看