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

  • 相关阅读:
    用SecureCRT 查看Linux下日志的简单命令
    性能测试知多少---并发用户
    性能测试指标的基本概念
    软件测试基本理论
    Selenium 入门视频
    零基础学软件测试
    装饰器作业
    <python全栈开发基础>学习过程笔记【16d】装饰器(含time模块)
    【搬家】我的CSDN博客地址http://my.csdn.net/myloveprogrmming
    《Python全栈开发》学习过程笔记【3】
  • 原文地址:https://www.cnblogs.com/1285026182YUAN/p/11348911.html
Copyright © 2011-2022 走看看