zoukankan      html  css  js  c++  java
  • NETCORE

    .NET技术-4.0. NETCORE跨域

    1.安装程序CORS程序包,一般默认都带了此程序包的

    Install-Package Microsoft.AspNetCore.Mvc.Cors

    2.配置CORS服务

    在 Startup类,ConfigureServices方法里,添加如下代码:

    services.AddCors(option=>option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().AllowAnyOrigin()));

        //例:
    public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddCors(option => option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().AllowAnyOrigin())); }

    策略名称可以自已定义

    请一定注意看以下内容:

    新版的CORS中间件已经阻止使用允许任意Origin,即 AllowAnyOrigin 设置了也不会生效。

    解决办法:使用 WithOrigins 来设置 Origin

    例子:

    policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(new []{"http://xxx.xxx.com"});

    3.配置CORS中间件

    在 Startup类,Configure方法里,添加如下代码:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseCors("cors");
        app.UseMvc();
    }

    主要是 app.UseCors("cors");这句代码,需要注意的是必须放在 UseMvc 之前,且策略名称必须是已经定义的

    完成。

    netcore 3.1 版本

    直接在 Configure 里面增加设置

            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                // 设置只允许特定来源可以跨域
                app.UseCors(options =>
                {
                    options.WithOrigins("https://localhost:5001"); // 允许特定ip跨域
                    options.AllowAnyHeader();
                    options.AllowAnyMethod();
                    options.AllowCredentials();
                });
    
    
    
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
    
                app.UseHttpsRedirection();
    
                app.UseRouting();
    
                app.UseAuthorization();
                 
    
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapControllers();
                });
            }
        }

    引用:https://www.cnblogs.com/stulzq/p/9392150.html

  • 相关阅读:
    RocketMQ消息模型
    RabbitMQ消息模型
    消息队列选择
    消息队列使用场景
    synchronized底层实现
    Java 内存模型
    MySql中的字符数据类型
    php页面编码与字符操作
    git学习总结
    SESSION机制
  • 原文地址:https://www.cnblogs.com/1285026182YUAN/p/11348911.html
Copyright © 2011-2022 走看看